@ledgerhq/device-signer-kit-concordium 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +79 -1
- package/lib/cjs/api/SignerConcordium.js +1 -1
- package/lib/cjs/api/SignerConcordium.js.map +1 -1
- package/lib/cjs/api/SignerConcordiumBuilder.js +1 -1
- package/lib/cjs/api/SignerConcordiumBuilder.js.map +3 -3
- package/lib/cjs/api/SignerConcordiumBuilder.test.js +2 -0
- package/lib/cjs/api/SignerConcordiumBuilder.test.js.map +7 -0
- package/lib/cjs/api/app-binder/VerifyAddressDeviceActionTypes.js +2 -0
- package/lib/cjs/api/app-binder/VerifyAddressDeviceActionTypes.js.map +7 -0
- package/lib/cjs/api/index.js +1 -1
- package/lib/cjs/api/index.js.map +2 -2
- package/lib/cjs/api/model/VerifyAddressOptions.js +2 -0
- package/lib/cjs/api/model/VerifyAddressOptions.js.map +7 -0
- package/lib/cjs/internal/DefaultSignerConcordium.js +1 -1
- package/lib/cjs/internal/DefaultSignerConcordium.js.map +3 -3
- package/lib/cjs/internal/app-binder/ConcordiumAppBinder.js +1 -1
- package/lib/cjs/internal/app-binder/ConcordiumAppBinder.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/GetChallengeCommand.js +2 -0
- package/lib/cjs/internal/app-binder/command/GetChallengeCommand.js.map +7 -0
- package/lib/cjs/internal/app-binder/command/GetChallengeCommand.test.js +2 -0
- package/lib/cjs/internal/app-binder/command/GetChallengeCommand.test.js.map +7 -0
- package/lib/cjs/internal/app-binder/command/SetTrustedNameCommand.js +2 -0
- package/lib/cjs/internal/app-binder/command/SetTrustedNameCommand.js.map +7 -0
- package/lib/cjs/internal/app-binder/command/SetTrustedNameCommand.test.js +2 -0
- package/lib/cjs/internal/app-binder/command/SetTrustedNameCommand.test.js.map +7 -0
- package/lib/cjs/internal/app-binder/command/VerifyAddressCommand.js +2 -0
- package/lib/cjs/internal/app-binder/command/VerifyAddressCommand.js.map +7 -0
- package/lib/cjs/internal/app-binder/command/VerifyAddressCommand.test.js +2 -0
- package/lib/cjs/internal/app-binder/command/VerifyAddressCommand.test.js.map +7 -0
- package/lib/cjs/internal/app-binder/command/utils/AddressVerificationFailedError.js +2 -0
- package/lib/cjs/internal/app-binder/command/utils/AddressVerificationFailedError.js.map +7 -0
- package/lib/cjs/internal/app-binder/command/utils/ConcordiumApplicationErrors.js +1 -1
- package/lib/cjs/internal/app-binder/command/utils/ConcordiumApplicationErrors.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/utils/TrustedMetadataServiceError.js +2 -0
- package/lib/cjs/internal/app-binder/command/utils/TrustedMetadataServiceError.js.map +7 -0
- package/lib/cjs/internal/app-binder/constants.js +1 -1
- package/lib/cjs/internal/app-binder/constants.js.map +2 -2
- package/lib/cjs/internal/app-binder/task/VerifyAddressTask.js +2 -0
- package/lib/cjs/internal/app-binder/task/VerifyAddressTask.js.map +7 -0
- package/lib/cjs/internal/app-binder/task/VerifyAddressTask.test.js +2 -0
- package/lib/cjs/internal/app-binder/task/VerifyAddressTask.test.js.map +7 -0
- package/lib/cjs/internal/di.js +1 -1
- package/lib/cjs/internal/di.js.map +3 -3
- package/lib/cjs/internal/externalTypes.js +1 -1
- package/lib/cjs/internal/externalTypes.js.map +2 -2
- package/lib/cjs/internal/use-cases/verify-address/VerifyAddressUseCase.js +2 -0
- package/lib/cjs/internal/use-cases/verify-address/VerifyAddressUseCase.js.map +7 -0
- package/lib/cjs/internal/use-cases/verify-address/di/verifyAddressModule.js +2 -0
- package/lib/cjs/internal/use-cases/verify-address/di/verifyAddressModule.js.map +7 -0
- package/lib/cjs/internal/use-cases/verify-address/di/verifyAddressTypes.js +2 -0
- package/lib/cjs/internal/use-cases/verify-address/di/verifyAddressTypes.js.map +7 -0
- package/lib/cjs/package.json +5 -3
- package/lib/esm/api/SignerConcordiumBuilder.js +1 -1
- package/lib/esm/api/SignerConcordiumBuilder.js.map +3 -3
- package/lib/esm/api/SignerConcordiumBuilder.test.js +2 -0
- package/lib/esm/api/SignerConcordiumBuilder.test.js.map +7 -0
- package/lib/esm/api/app-binder/VerifyAddressDeviceActionTypes.js +1 -0
- package/lib/esm/api/app-binder/VerifyAddressDeviceActionTypes.js.map +7 -0
- package/lib/esm/api/index.js.map +2 -2
- package/lib/esm/api/model/VerifyAddressOptions.js +1 -0
- package/lib/esm/api/model/VerifyAddressOptions.js.map +7 -0
- package/lib/esm/internal/DefaultSignerConcordium.js +1 -1
- package/lib/esm/internal/DefaultSignerConcordium.js.map +3 -3
- package/lib/esm/internal/app-binder/ConcordiumAppBinder.js +1 -1
- package/lib/esm/internal/app-binder/ConcordiumAppBinder.js.map +3 -3
- package/lib/esm/internal/app-binder/command/GetChallengeCommand.js +2 -0
- package/lib/esm/internal/app-binder/command/GetChallengeCommand.js.map +7 -0
- package/lib/esm/internal/app-binder/command/GetChallengeCommand.test.js +2 -0
- package/lib/esm/internal/app-binder/command/GetChallengeCommand.test.js.map +7 -0
- package/lib/esm/internal/app-binder/command/SetTrustedNameCommand.js +2 -0
- package/lib/esm/internal/app-binder/command/SetTrustedNameCommand.js.map +7 -0
- package/lib/esm/internal/app-binder/command/SetTrustedNameCommand.test.js +2 -0
- package/lib/esm/internal/app-binder/command/SetTrustedNameCommand.test.js.map +7 -0
- package/lib/esm/internal/app-binder/command/VerifyAddressCommand.js +2 -0
- package/lib/esm/internal/app-binder/command/VerifyAddressCommand.js.map +7 -0
- package/lib/esm/internal/app-binder/command/VerifyAddressCommand.test.js +2 -0
- package/lib/esm/internal/app-binder/command/VerifyAddressCommand.test.js.map +7 -0
- package/lib/esm/internal/app-binder/command/utils/AddressVerificationFailedError.js +2 -0
- package/lib/esm/internal/app-binder/command/utils/AddressVerificationFailedError.js.map +7 -0
- package/lib/esm/internal/app-binder/command/utils/ConcordiumApplicationErrors.js +1 -1
- package/lib/esm/internal/app-binder/command/utils/ConcordiumApplicationErrors.js.map +2 -2
- package/lib/esm/internal/app-binder/command/utils/TrustedMetadataServiceError.js +2 -0
- package/lib/esm/internal/app-binder/command/utils/TrustedMetadataServiceError.js.map +7 -0
- package/lib/esm/internal/app-binder/constants.js +1 -1
- package/lib/esm/internal/app-binder/constants.js.map +2 -2
- package/lib/esm/internal/app-binder/task/VerifyAddressTask.js +2 -0
- package/lib/esm/internal/app-binder/task/VerifyAddressTask.js.map +7 -0
- package/lib/esm/internal/app-binder/task/VerifyAddressTask.test.js +2 -0
- package/lib/esm/internal/app-binder/task/VerifyAddressTask.test.js.map +7 -0
- package/lib/esm/internal/di.js +1 -1
- package/lib/esm/internal/di.js.map +3 -3
- package/lib/esm/internal/externalTypes.js +1 -1
- package/lib/esm/internal/externalTypes.js.map +2 -2
- package/lib/esm/internal/use-cases/verify-address/VerifyAddressUseCase.js +2 -0
- package/lib/esm/internal/use-cases/verify-address/VerifyAddressUseCase.js.map +7 -0
- package/lib/esm/internal/use-cases/verify-address/di/verifyAddressModule.js +2 -0
- package/lib/esm/internal/use-cases/verify-address/di/verifyAddressModule.js.map +7 -0
- package/lib/esm/internal/use-cases/verify-address/di/verifyAddressTypes.js +2 -0
- package/lib/esm/internal/use-cases/verify-address/di/verifyAddressTypes.js.map +7 -0
- package/lib/esm/package.json +5 -3
- package/lib/types/api/SignerConcordium.d.ts +4 -0
- package/lib/types/api/SignerConcordium.d.ts.map +1 -1
- package/lib/types/api/SignerConcordiumBuilder.d.ts +11 -2
- package/lib/types/api/SignerConcordiumBuilder.d.ts.map +1 -1
- package/lib/types/api/SignerConcordiumBuilder.test.d.ts +2 -0
- package/lib/types/api/SignerConcordiumBuilder.test.d.ts.map +1 -0
- package/lib/types/api/app-binder/VerifyAddressDeviceActionTypes.d.ts +12 -0
- package/lib/types/api/app-binder/VerifyAddressDeviceActionTypes.d.ts.map +1 -0
- package/lib/types/api/index.d.ts +2 -0
- package/lib/types/api/index.d.ts.map +1 -1
- package/lib/types/api/model/VerifyAddressOptions.d.ts +4 -0
- package/lib/types/api/model/VerifyAddressOptions.d.ts.map +1 -0
- package/lib/types/internal/DefaultSignerConcordium.d.ts +6 -1
- package/lib/types/internal/DefaultSignerConcordium.d.ts.map +1 -1
- package/lib/types/internal/app-binder/ConcordiumAppBinder.d.ts +10 -1
- package/lib/types/internal/app-binder/ConcordiumAppBinder.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/GetChallengeCommand.d.ts +12 -0
- package/lib/types/internal/app-binder/command/GetChallengeCommand.d.ts.map +1 -0
- package/lib/types/internal/app-binder/command/GetChallengeCommand.test.d.ts +2 -0
- package/lib/types/internal/app-binder/command/GetChallengeCommand.test.d.ts.map +1 -0
- package/lib/types/internal/app-binder/command/SetTrustedNameCommand.d.ts +14 -0
- package/lib/types/internal/app-binder/command/SetTrustedNameCommand.d.ts.map +1 -0
- package/lib/types/internal/app-binder/command/SetTrustedNameCommand.test.d.ts +2 -0
- package/lib/types/internal/app-binder/command/SetTrustedNameCommand.test.d.ts.map +1 -0
- package/lib/types/internal/app-binder/command/VerifyAddressCommand.d.ts +14 -0
- package/lib/types/internal/app-binder/command/VerifyAddressCommand.d.ts.map +1 -0
- package/lib/types/internal/app-binder/command/VerifyAddressCommand.test.d.ts +2 -0
- package/lib/types/internal/app-binder/command/VerifyAddressCommand.test.d.ts.map +1 -0
- package/lib/types/internal/app-binder/command/utils/AddressVerificationFailedError.d.ts +14 -0
- package/lib/types/internal/app-binder/command/utils/AddressVerificationFailedError.d.ts.map +1 -0
- package/lib/types/internal/app-binder/command/utils/ConcordiumApplicationErrors.d.ts +4 -1
- package/lib/types/internal/app-binder/command/utils/ConcordiumApplicationErrors.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/utils/TrustedMetadataServiceError.d.ts +6 -0
- package/lib/types/internal/app-binder/command/utils/TrustedMetadataServiceError.d.ts.map +1 -0
- package/lib/types/internal/app-binder/constants.d.ts +3 -0
- package/lib/types/internal/app-binder/constants.d.ts.map +1 -1
- package/lib/types/internal/app-binder/task/VerifyAddressTask.d.ts +17 -0
- package/lib/types/internal/app-binder/task/VerifyAddressTask.d.ts.map +1 -0
- package/lib/types/internal/app-binder/task/VerifyAddressTask.test.d.ts +2 -0
- package/lib/types/internal/app-binder/task/VerifyAddressTask.test.d.ts.map +1 -0
- package/lib/types/internal/di.d.ts +3 -1
- package/lib/types/internal/di.d.ts.map +1 -1
- package/lib/types/internal/externalTypes.d.ts +1 -0
- package/lib/types/internal/externalTypes.d.ts.map +1 -1
- package/lib/types/internal/use-cases/verify-address/VerifyAddressUseCase.d.ts +10 -0
- package/lib/types/internal/use-cases/verify-address/VerifyAddressUseCase.d.ts.map +1 -0
- package/lib/types/internal/use-cases/verify-address/di/verifyAddressModule.d.ts +3 -0
- package/lib/types/internal/use-cases/verify-address/di/verifyAddressModule.d.ts.map +1 -0
- package/lib/types/internal/use-cases/verify-address/di/verifyAddressTypes.d.ts +4 -0
- package/lib/types/internal/use-cases/verify-address/di/verifyAddressTypes.d.ts.map +1 -0
- package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
- package/package.json +10 -8
package/README.md
CHANGED
|
@@ -6,6 +6,7 @@ This module provides the implementation of the Ledger Concordium signer of the D
|
|
|
6
6
|
- Retrieving the Concordium public key using a given derivation path;
|
|
7
7
|
- Signing a Concordium transaction (Transfer and TransferWithMemo);
|
|
8
8
|
- Signing a Concordium credential deployment transaction;
|
|
9
|
+
- Verifying a Concordium address on-device using a trusted backend;
|
|
9
10
|
|
|
10
11
|
## 🔹 Index
|
|
11
12
|
|
|
@@ -17,6 +18,7 @@ This module provides the implementation of the Ledger Concordium signer of the D
|
|
|
17
18
|
- [Get Public Key](#use-case-2-get-public-key)
|
|
18
19
|
- [Sign Transaction](#use-case-3-sign-transaction)
|
|
19
20
|
- [Sign Credential Deployment Transaction](#use-case-4-sign-credential-deployment-transaction)
|
|
21
|
+
- [Verify Address](#use-case-5-verify-address)
|
|
20
22
|
5. [Observable Behavior](#-observable-behavior)
|
|
21
23
|
|
|
22
24
|
## 🔹 How it works
|
|
@@ -44,9 +46,24 @@ const signerConcordium = new SignerConcordiumBuilder({
|
|
|
44
46
|
}).build();
|
|
45
47
|
```
|
|
46
48
|
|
|
49
|
+
The builder creates a default `ContextModule` out of the box, which is used by `verifyAddress` to communicate with the trusted metadata service. You can also provide a customized context module:
|
|
50
|
+
|
|
51
|
+
```typescript
|
|
52
|
+
import { ContextModuleBuilder } from "@ledgerhq/context-module";
|
|
53
|
+
|
|
54
|
+
const customContextModule = new ContextModuleBuilder({ originToken }).build();
|
|
55
|
+
|
|
56
|
+
const signerConcordium = new SignerConcordiumBuilder({
|
|
57
|
+
dmk,
|
|
58
|
+
sessionId,
|
|
59
|
+
})
|
|
60
|
+
.withContextModule(customContextModule)
|
|
61
|
+
.build();
|
|
62
|
+
```
|
|
63
|
+
|
|
47
64
|
## 🔹 Use Cases
|
|
48
65
|
|
|
49
|
-
The `SignerConcordiumBuilder.build()` method will return a `SignerConcordium` instance that exposes
|
|
66
|
+
The `SignerConcordiumBuilder.build()` method will return a `SignerConcordium` instance that exposes 5 dedicated methods, each of which calls an independent use case. Each use case will return an object that contains an observable and a method called `cancel`.
|
|
50
67
|
|
|
51
68
|
---
|
|
52
69
|
|
|
@@ -229,6 +246,67 @@ type Signature = Uint8Array; // 64-byte Ed25519 signature
|
|
|
229
246
|
|
|
230
247
|
---
|
|
231
248
|
|
|
249
|
+
### Use Case 5: Verify Address
|
|
250
|
+
|
|
251
|
+
Securely verify a Concordium account address on the Ledger device using the trusted backend pattern. The signer fetches a signed account ownership descriptor from the trusted metadata service, loads it onto the device via the PKI infrastructure, then triggers address verification. The device validates the descriptor's signature chain, derives the public key from the given path, and displays the address for user confirmation only if the key matches.
|
|
252
|
+
|
|
253
|
+
The flow can fail in two distinct ways at the metadata-service boundary. Both are surfaced via `DeviceActionStatus.Error` and must be discriminated by the stable `errorCode` string on the emitted error:
|
|
254
|
+
|
|
255
|
+
- **`errorCode: "address_verification_failed"`** — the trusted metadata service was reached and actively refused the pubkey → address mapping (HTTP 4xx, typically 422). The backend's `message` is forwarded verbatim in `error.message`. Treat as a terminal, non-retryable verification failure.
|
|
256
|
+
- **`errorCode: "trusted_metadata_service_error"`** — the trusted metadata service could not answer (network failure, HTTP 5xx, malformed response). Treat as transient; a retry or a cached-address fallback may be appropriate.
|
|
257
|
+
|
|
258
|
+
Device-originated errors (`"6985"` user rejected, `"5515"` locked device, `"6b0c"` trusted name mismatch) are surfaced the same way.
|
|
259
|
+
|
|
260
|
+
```typescript
|
|
261
|
+
const { observable, cancel } = signerConcordium.verifyAddress(
|
|
262
|
+
derivationPath,
|
|
263
|
+
address,
|
|
264
|
+
network,
|
|
265
|
+
options,
|
|
266
|
+
);
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
#### **Parameters**
|
|
270
|
+
|
|
271
|
+
- `derivationPath`
|
|
272
|
+
|
|
273
|
+
- **Required**
|
|
274
|
+
- **Type:** `string` (e.g., `"44'/919'/0'/0'/0'"`)
|
|
275
|
+
- The derivation path for the account's signing key.
|
|
276
|
+
|
|
277
|
+
- `address`
|
|
278
|
+
|
|
279
|
+
- **Required**
|
|
280
|
+
- **Type:** `string`
|
|
281
|
+
- The Concordium Base58Check account address to verify (e.g., `"3kFkntk2H5FGMzeR3GjQKPhdZK9LShKdPHsj2fiGKCdmDXj2WB"`).
|
|
282
|
+
|
|
283
|
+
- `network`
|
|
284
|
+
|
|
285
|
+
- **Required**
|
|
286
|
+
- **Type:** `"mainnet" | "testnet"`
|
|
287
|
+
- The Concordium network for which to verify the address.
|
|
288
|
+
|
|
289
|
+
- `options`
|
|
290
|
+
|
|
291
|
+
- Optional
|
|
292
|
+
- Type: `VerifyAddressOptions`
|
|
293
|
+
|
|
294
|
+
```typescript
|
|
295
|
+
type VerifyAddressOptions = {
|
|
296
|
+
skipOpenApp?: boolean;
|
|
297
|
+
};
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
- `skipOpenApp`: An optional boolean indicating whether to skip opening the Concordium app on the device.
|
|
301
|
+
|
|
302
|
+
#### **Returns**
|
|
303
|
+
|
|
304
|
+
- `observable` Emits DeviceActionState updates. On completion, the output is `true` (the address was verified and approved by the user).
|
|
305
|
+
|
|
306
|
+
- `cancel` A function to cancel the action on the Ledger device.
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
232
310
|
## 🔹 Observable Behavior
|
|
233
311
|
|
|
234
312
|
Each method returns an [Observable](https://rxjs.dev/guide/observable) emitting updates structured as [`DeviceActionState`](https://github.com/LedgerHQ/device-sdk-ts/blob/develop/packages/device-management-kit/src/api/device-action/model/DeviceActionState.ts). These updates reflect the operation's progress and status:
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var i=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var y=(n,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of s(t))!a.call(n,e)&&e!==o&&i(n,e,{get:()=>t[e],enumerable:!(r=p(t,e))||r.enumerable});return n};var c=n=>y(i({},"__esModule",{value:!0}),n);var m={};module.exports=c(m);
|
|
2
2
|
//# sourceMappingURL=SignerConcordium.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/api/SignerConcordium.ts"],
|
|
4
|
-
"sourcesContent": ["import { type GetAppConfigDAReturnType } from \"@api/app-binder/GetAppConfigDeviceActionTypes\";\nimport { type GetPublicKeyDAReturnType } from \"@api/app-binder/GetPublicKeyDeviceActionTypes\";\nimport { type SignCredentialDeploymentTransactionDAReturnType } from \"@api/app-binder/SignCredentialDeploymentTransactionDeviceActionTypes\";\nimport { type SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type PublicKeyOptions } from \"@api/model/PublicKeyOptions\";\nimport { type TransactionOptions } from \"@api/model/TransactionOptions\";\n\nexport interface SignerConcordium {\n getAppConfiguration: () => GetAppConfigDAReturnType;\n\n getPublicKey: (\n derivationPath: string,\n options?: PublicKeyOptions,\n ) => GetPublicKeyDAReturnType;\n\n signTransaction: (\n derivationPath: string,\n transaction: Uint8Array,\n options?: TransactionOptions,\n ) => SignTransactionDAReturnType;\n\n signCredentialDeploymentTransaction: (\n derivationPath: string,\n transaction: Uint8Array,\n options?: TransactionOptions,\n ) => SignCredentialDeploymentTransactionDAReturnType;\n}\n"],
|
|
4
|
+
"sourcesContent": ["import { type AccountOwnershipNetwork } from \"@ledgerhq/context-module\";\n\nimport { type GetAppConfigDAReturnType } from \"@api/app-binder/GetAppConfigDeviceActionTypes\";\nimport { type GetPublicKeyDAReturnType } from \"@api/app-binder/GetPublicKeyDeviceActionTypes\";\nimport { type SignCredentialDeploymentTransactionDAReturnType } from \"@api/app-binder/SignCredentialDeploymentTransactionDeviceActionTypes\";\nimport { type SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type VerifyAddressDAReturnType } from \"@api/app-binder/VerifyAddressDeviceActionTypes\";\nimport { type PublicKeyOptions } from \"@api/model/PublicKeyOptions\";\nimport { type TransactionOptions } from \"@api/model/TransactionOptions\";\nimport { type VerifyAddressOptions } from \"@api/model/VerifyAddressOptions\";\n\nexport interface SignerConcordium {\n getAppConfiguration: () => GetAppConfigDAReturnType;\n\n getPublicKey: (\n derivationPath: string,\n options?: PublicKeyOptions,\n ) => GetPublicKeyDAReturnType;\n\n signTransaction: (\n derivationPath: string,\n transaction: Uint8Array,\n options?: TransactionOptions,\n ) => SignTransactionDAReturnType;\n\n signCredentialDeploymentTransaction: (\n derivationPath: string,\n transaction: Uint8Array,\n options?: TransactionOptions,\n ) => SignCredentialDeploymentTransactionDAReturnType;\n\n verifyAddress: (\n derivationPath: string,\n address: string,\n network: AccountOwnershipNetwork,\n options?: VerifyAddressOptions,\n ) => VerifyAddressDAReturnType;\n}\n"],
|
|
5
5
|
"mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
|
|
6
6
|
"names": ["SignerConcordium_exports", "__toCommonJS"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var n=Object.defineProperty;var
|
|
1
|
+
"use strict";var n=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var m=(t,e)=>{for(var o in e)n(t,o,{get:e[o],enumerable:!0})},a=(t,e,o,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of c(e))!l.call(t,i)&&i!==o&&n(t,i,{get:()=>e[i],enumerable:!(s=u(e,i))||s.enumerable});return t};var g=t=>a(n({},"__esModule",{value:!0}),t);var p={};m(p,{SignerConcordiumBuilder:()=>C});module.exports=g(p);var r=require("@ledgerhq/context-module"),d=require("../internal/DefaultSignerConcordium");class C{_dmk;_sessionId;_customContextModule;constructor({dmk:e,sessionId:o}){this._dmk=e,this._sessionId=o}withContextModule(e){return this._customContextModule=e,this}build(){const e=this._customContextModule??new r.ContextModuleBuilder({loggerFactory:o=>this._dmk.getLoggerFactory()(["ContextModule",o])}).build();return new d.DefaultSignerConcordium({dmk:this._dmk,sessionId:this._sessionId,contextModule:e})}}0&&(module.exports={SignerConcordiumBuilder});
|
|
2
2
|
//# sourceMappingURL=SignerConcordiumBuilder.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/api/SignerConcordiumBuilder.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,IAAA,eAAAC,EAAAH,
|
|
6
|
-
"names": ["SignerConcordiumBuilder_exports", "__export", "SignerConcordiumBuilder", "__toCommonJS", "import_DefaultSignerConcordium", "dmk", "sessionId"]
|
|
4
|
+
"sourcesContent": ["import {\n type ContextModule,\n ContextModuleBuilder,\n} from \"@ledgerhq/context-module\";\nimport {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { DefaultSignerConcordium } from \"@internal/DefaultSignerConcordium\";\n\ntype SignerConcordiumBuilderConstructorArgs = {\n dmk: DeviceManagementKit;\n sessionId: DeviceSessionId;\n};\n\nexport class SignerConcordiumBuilder {\n private readonly _dmk: DeviceManagementKit;\n private readonly _sessionId: DeviceSessionId;\n private _customContextModule?: ContextModule;\n\n constructor({ dmk, sessionId }: SignerConcordiumBuilderConstructorArgs) {\n this._dmk = dmk;\n this._sessionId = sessionId;\n }\n\n /**\n * Override the default context module\n *\n * @param contextModule\n * @returns this\n */\n public withContextModule(contextModule: ContextModule): this {\n this._customContextModule = contextModule;\n return this;\n }\n\n public build() {\n const contextModule =\n this._customContextModule ??\n new ContextModuleBuilder({\n loggerFactory: (tag: string) =>\n this._dmk.getLoggerFactory()([\"ContextModule\", tag]),\n }).build();\n\n return new DefaultSignerConcordium({\n dmk: this._dmk,\n sessionId: this._sessionId,\n contextModule,\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAGO,oCAMPC,EAAwC,6CAOjC,MAAMH,CAAwB,CAClB,KACA,WACT,qBAER,YAAY,CAAE,IAAAI,EAAK,UAAAC,CAAU,EAA2C,CACtE,KAAK,KAAOD,EACZ,KAAK,WAAaC,CACpB,CAQO,kBAAkBC,EAAoC,CAC3D,YAAK,qBAAuBA,EACrB,IACT,CAEO,OAAQ,CACb,MAAMA,EACJ,KAAK,sBACL,IAAI,uBAAqB,CACvB,cAAgBC,GACd,KAAK,KAAK,iBAAiB,EAAE,CAAC,gBAAiBA,CAAG,CAAC,CACvD,CAAC,EAAE,MAAM,EAEX,OAAO,IAAI,0BAAwB,CACjC,IAAK,KAAK,KACV,UAAW,KAAK,WAChB,cAAAD,CACF,CAAC,CACH,CACF",
|
|
6
|
+
"names": ["SignerConcordiumBuilder_exports", "__export", "SignerConcordiumBuilder", "__toCommonJS", "import_context_module", "import_DefaultSignerConcordium", "dmk", "sessionId", "contextModule", "tag"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var o=require("./SignerConcordiumBuilder"),r=require("../internal/DefaultSignerConcordium"),c=require("../internal/externalTypes");const s={debug:vi.fn(),info:vi.fn(),warn:vi.fn(),error:vi.fn(),subscribers:[]};describe("SignerConcordiumBuilder",()=>{const i={dmk:{getLoggerFactory:()=>()=>s},sessionId:""};test("should be an instance of SignerConcordiumBuilder",()=>{const e=new o.SignerConcordiumBuilder(i);e.build(),expect(e).toBeInstanceOf(o.SignerConcordiumBuilder)}),test("should instantiate with default context module",()=>{const t=new o.SignerConcordiumBuilder(i).build(),n=t._container.get(c.externalTypes.ContextModule);expect(t).toBeInstanceOf(r.DefaultSignerConcordium),expect(n).toBeDefined()}),test("should instantiate with custom context module",()=>{const e=new o.SignerConcordiumBuilder(i),t={},n=e.withContextModule(t).build();expect(n).toBeInstanceOf(r.DefaultSignerConcordium),expect(n._container.get(c.externalTypes.ContextModule)).toBe(t)})});
|
|
2
|
+
//# sourceMappingURL=SignerConcordiumBuilder.test.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/api/SignerConcordiumBuilder.test.ts"],
|
|
4
|
+
"sourcesContent": ["import { type ContextModule } from \"@ledgerhq/context-module\";\nimport { type DeviceManagementKit } from \"@ledgerhq/device-management-kit\";\n\nimport { SignerConcordiumBuilder } from \"@api/SignerConcordiumBuilder\";\nimport { DefaultSignerConcordium } from \"@internal/DefaultSignerConcordium\";\nimport { externalTypes } from \"@internal/externalTypes\";\n\nconst mockLogger = {\n debug: vi.fn(),\n info: vi.fn(),\n warn: vi.fn(),\n error: vi.fn(),\n subscribers: [],\n};\n\ndescribe(\"SignerConcordiumBuilder\", () => {\n const dmk: DeviceManagementKit = {\n getLoggerFactory: () => () => mockLogger,\n } as unknown as DeviceManagementKit;\n const defaultConstructorArgs = { dmk, sessionId: \"\" };\n\n test(\"should be an instance of SignerConcordiumBuilder\", () => {\n const builder = new SignerConcordiumBuilder(defaultConstructorArgs);\n\n builder.build();\n\n expect(builder).toBeInstanceOf(SignerConcordiumBuilder);\n });\n\n test(\"should instantiate with default context module\", () => {\n const builder = new SignerConcordiumBuilder(defaultConstructorArgs);\n\n const signer = builder.build();\n const contextModule = signer[\"_container\"].get<ContextModule>(\n externalTypes.ContextModule,\n );\n\n expect(signer).toBeInstanceOf(DefaultSignerConcordium);\n expect(contextModule).toBeDefined();\n });\n\n test(\"should instantiate with custom context module\", () => {\n const builder = new SignerConcordiumBuilder(defaultConstructorArgs);\n const contextModule = {} as ContextModule;\n\n const signer = builder.withContextModule(contextModule).build();\n\n expect(signer).toBeInstanceOf(DefaultSignerConcordium);\n expect(\n signer[\"_container\"].get<ContextModule>(externalTypes.ContextModule),\n ).toBe(contextModule);\n });\n});\n"],
|
|
5
|
+
"mappings": "aAGA,IAAAA,EAAwC,wCACxCC,EAAwC,6CACxCC,EAA8B,mCAE9B,MAAMC,EAAa,CACjB,MAAO,GAAG,GAAG,EACb,KAAM,GAAG,GAAG,EACZ,KAAM,GAAG,GAAG,EACZ,MAAO,GAAG,GAAG,EACb,YAAa,CAAC,CAChB,EAEA,SAAS,0BAA2B,IAAM,CAIxC,MAAMC,EAAyB,CAAE,IAHA,CAC/B,iBAAkB,IAAM,IAAMD,CAChC,EACsC,UAAW,EAAG,EAEpD,KAAK,mDAAoD,IAAM,CAC7D,MAAME,EAAU,IAAI,0BAAwBD,CAAsB,EAElEC,EAAQ,MAAM,EAEd,OAAOA,CAAO,EAAE,eAAe,yBAAuB,CACxD,CAAC,EAED,KAAK,iDAAkD,IAAM,CAG3D,MAAMC,EAFU,IAAI,0BAAwBF,CAAsB,EAE3C,MAAM,EACvBG,EAAgBD,EAAO,WAAc,IACzC,gBAAc,aAChB,EAEA,OAAOA,CAAM,EAAE,eAAe,yBAAuB,EACrD,OAAOC,CAAa,EAAE,YAAY,CACpC,CAAC,EAED,KAAK,gDAAiD,IAAM,CAC1D,MAAMF,EAAU,IAAI,0BAAwBD,CAAsB,EAC5DG,EAAgB,CAAC,EAEjBD,EAASD,EAAQ,kBAAkBE,CAAa,EAAE,MAAM,EAE9D,OAAOD,CAAM,EAAE,eAAe,yBAAuB,EACrD,OACEA,EAAO,WAAc,IAAmB,gBAAc,aAAa,CACrE,EAAE,KAAKC,CAAa,CACtB,CAAC,CACH,CAAC",
|
|
6
|
+
"names": ["import_SignerConcordiumBuilder", "import_DefaultSignerConcordium", "import_externalTypes", "mockLogger", "defaultConstructorArgs", "builder", "signer", "contextModule"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var o=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var n=(r,e,i,d)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of s(e))!A.call(r,t)&&t!==i&&o(r,t,{get:()=>e[t],enumerable:!(d=p(e,t))||d.enumerable});return r};var y=r=>n(o({},"__esModule",{value:!0}),r);var u={};module.exports=y(u);
|
|
2
|
+
//# sourceMappingURL=VerifyAddressDeviceActionTypes.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/api/app-binder/VerifyAddressDeviceActionTypes.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n type CommandErrorResult,\n type ExecuteDeviceActionReturnType,\n type LoadCertificateErrorCodes,\n type OpenAppDAError,\n type OpenAppDARequiredInteraction,\n type UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { type ConcordiumErrorCodes } from \"@internal/app-binder/command/utils/ConcordiumApplicationErrors\";\n\nexport type VerifyAddressErrorCodes =\n | ConcordiumErrorCodes\n | LoadCertificateErrorCodes;\n\nexport type VerifyAddressDAOutput = true;\nexport type VerifyAddressDAError =\n | OpenAppDAError\n | CommandErrorResult<VerifyAddressErrorCodes>[\"error\"];\n\ntype VerifyAddressDARequiredInteraction =\n | OpenAppDARequiredInteraction\n | UserInteractionRequired.VerifyAddress;\n\nexport type VerifyAddressDAIntermediateValue = {\n requiredUserInteraction: VerifyAddressDARequiredInteraction;\n};\n\nexport type VerifyAddressDAReturnType = ExecuteDeviceActionReturnType<\n VerifyAddressDAOutput,\n VerifyAddressDAError,\n VerifyAddressDAIntermediateValue\n>;\n"],
|
|
5
|
+
"mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
|
|
6
|
+
"names": ["VerifyAddressDeviceActionTypes_exports", "__toCommonJS"]
|
|
7
|
+
}
|
package/lib/cjs/api/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var o=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var A=(t,e)=>{for(var p in e)o(t,p,{get:e[p],enumerable:!0})},d=(t,e,p,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of a(e))!u.call(t,r)&&r!==p&&o(t,r,{get:()=>e[r],enumerable:!(n=y(e,r))||n.enumerable});return t};var s=t=>d(o({},"__esModule",{value:!0}),t);var f={};A(f,{SignerConcordiumBuilder:()=>i.SignerConcordiumBuilder});module.exports=s(f);var i=require("./SignerConcordiumBuilder");0&&(module.exports={SignerConcordiumBuilder});
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/lib/cjs/api/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/api/index.ts"],
|
|
4
|
-
"sourcesContent": ["export {\n type GetAppConfigDAError,\n type GetAppConfigDAIntermediateValue,\n type GetAppConfigDAOutput,\n type GetAppConfigDAReturnType,\n} from \"@api/app-binder/GetAppConfigDeviceActionTypes\";\nexport {\n type GetPublicKeyDAError,\n type GetPublicKeyDAIntermediateValue,\n type GetPublicKeyDAOutput,\n type GetPublicKeyDAReturnType,\n} from \"@api/app-binder/GetPublicKeyDeviceActionTypes\";\nexport {\n type SignCredentialDeploymentTransactionDAError,\n type SignCredentialDeploymentTransactionDAIntermediateValue,\n type SignCredentialDeploymentTransactionDAOutput,\n type SignCredentialDeploymentTransactionDAReturnType,\n} from \"@api/app-binder/SignCredentialDeploymentTransactionDeviceActionTypes\";\nexport {\n type SignTransactionDAError,\n type SignTransactionDAIntermediateValue,\n type SignTransactionDAOutput,\n type SignTransactionDAReturnType,\n} from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nexport { type AppConfiguration } from \"@api/model/AppConfiguration\";\nexport { type PublicKey } from \"@api/model/PublicKey\";\nexport { type PublicKeyOptions } from \"@api/model/PublicKeyOptions\";\nexport { type Signature } from \"@api/model/Signature\";\nexport { type TransactionOptions } from \"@api/model/TransactionOptions\";\nexport { type SignerConcordium } from \"@api/SignerConcordium\";\nexport { SignerConcordiumBuilder } from \"@api/SignerConcordiumBuilder\";\n"],
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wEAAAE,EAAAF,
|
|
4
|
+
"sourcesContent": ["export {\n type GetAppConfigDAError,\n type GetAppConfigDAIntermediateValue,\n type GetAppConfigDAOutput,\n type GetAppConfigDAReturnType,\n} from \"@api/app-binder/GetAppConfigDeviceActionTypes\";\nexport {\n type GetPublicKeyDAError,\n type GetPublicKeyDAIntermediateValue,\n type GetPublicKeyDAOutput,\n type GetPublicKeyDAReturnType,\n} from \"@api/app-binder/GetPublicKeyDeviceActionTypes\";\nexport {\n type SignCredentialDeploymentTransactionDAError,\n type SignCredentialDeploymentTransactionDAIntermediateValue,\n type SignCredentialDeploymentTransactionDAOutput,\n type SignCredentialDeploymentTransactionDAReturnType,\n} from \"@api/app-binder/SignCredentialDeploymentTransactionDeviceActionTypes\";\nexport {\n type SignTransactionDAError,\n type SignTransactionDAIntermediateValue,\n type SignTransactionDAOutput,\n type SignTransactionDAReturnType,\n} from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nexport {\n type VerifyAddressDAError,\n type VerifyAddressDAIntermediateValue,\n type VerifyAddressDAOutput,\n type VerifyAddressDAReturnType,\n type VerifyAddressErrorCodes,\n} from \"@api/app-binder/VerifyAddressDeviceActionTypes\";\nexport { type AppConfiguration } from \"@api/model/AppConfiguration\";\nexport { type PublicKey } from \"@api/model/PublicKey\";\nexport { type PublicKeyOptions } from \"@api/model/PublicKeyOptions\";\nexport { type Signature } from \"@api/model/Signature\";\nexport { type TransactionOptions } from \"@api/model/TransactionOptions\";\nexport { type VerifyAddressOptions } from \"@api/model/VerifyAddressOptions\";\nexport { type SignerConcordium } from \"@api/SignerConcordium\";\nexport { SignerConcordiumBuilder } from \"@api/SignerConcordiumBuilder\";\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wEAAAE,EAAAF,GAsCA,IAAAG,EAAwC",
|
|
6
6
|
"names": ["api_exports", "__export", "__toCommonJS", "import_SignerConcordiumBuilder"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var i=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var t=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var y=(e,p,n,s)=>{if(p&&typeof p=="object"||typeof p=="function")for(let o of t(p))!d.call(e,o)&&o!==n&&i(e,o,{get:()=>p[o],enumerable:!(s=r(p,o))||s.enumerable});return e};var A=e=>y(i({},"__esModule",{value:!0}),e);var O={};module.exports=A(O);
|
|
2
|
+
//# sourceMappingURL=VerifyAddressOptions.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/api/model/VerifyAddressOptions.ts"],
|
|
4
|
+
"sourcesContent": ["export type VerifyAddressOptions = {\n skipOpenApp?: boolean;\n};\n"],
|
|
5
|
+
"mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
|
|
6
|
+
"names": ["VerifyAddressOptions_exports", "__toCommonJS"]
|
|
7
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var o=Object.defineProperty;var
|
|
1
|
+
"use strict";var o=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var C=(n,e)=>{for(var t in e)o(n,t,{get:e[t],enumerable:!0})},d=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of f(e))!g.call(n,i)&&i!==t&&o(n,i,{get:()=>e[i],enumerable:!(r=u(e,i))||r.enumerable});return n};var l=n=>d(o({},"__esModule",{value:!0}),n);var T={};C(T,{DefaultSignerConcordium:()=>A});module.exports=l(T);var s=require("./di"),p=require("./use-cases/app-config/di/appConfigTypes"),a=require("./use-cases/credential-deployment/di/credentialDeploymentTypes"),m=require("./use-cases/publickey/di/publicKeyTypes"),y=require("./use-cases/transaction/di/transactionTypes"),c=require("./use-cases/verify-address/di/verifyAddressTypes");class A{_container;constructor({dmk:e,sessionId:t,contextModule:r}){this._container=(0,s.makeContainer)({dmk:e,sessionId:t,contextModule:r})}getAppConfiguration(){return this._container.get(p.appConfigTypes.GetAppConfigUseCase).execute()}getPublicKey(e,t){return this._container.get(m.publicKeyTypes.GetPublicKeyUseCase).execute(e,t)}signTransaction(e,t,r){return this._container.get(y.transactionTypes.SignTransactionUseCase).execute(e,t,r)}signCredentialDeploymentTransaction(e,t,r){return this._container.get(a.credentialDeploymentTypes.SignCredentialDeploymentTransactionUseCase).execute(e,t,r)}verifyAddress(e,t,r,i){return this._container.get(c.verifyAddressTypes.VerifyAddressUseCase).execute(e,t,r,i)}}0&&(module.exports={DefaultSignerConcordium});
|
|
2
2
|
//# sourceMappingURL=DefaultSignerConcordium.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/internal/DefaultSignerConcordium.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\nimport { type Container } from \"inversify\";\n\nimport { type GetAppConfigDAReturnType } from \"@api/app-binder/GetAppConfigDeviceActionTypes\";\nimport { type GetPublicKeyDAReturnType } from \"@api/app-binder/GetPublicKeyDeviceActionTypes\";\nimport { type SignCredentialDeploymentTransactionDAReturnType } from \"@api/app-binder/SignCredentialDeploymentTransactionDeviceActionTypes\";\nimport { type SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type PublicKeyOptions } from \"@api/model/PublicKeyOptions\";\nimport { type TransactionOptions } from \"@api/model/TransactionOptions\";\nimport { type SignerConcordium } from \"@api/SignerConcordium\";\nimport { makeContainer } from \"@internal/di\";\nimport { appConfigTypes } from \"@internal/use-cases/app-config/di/appConfigTypes\";\nimport { type GetAppConfigUseCase } from \"@internal/use-cases/app-config/GetAppConfigUseCase\";\nimport { credentialDeploymentTypes } from \"@internal/use-cases/credential-deployment/di/credentialDeploymentTypes\";\nimport { type SignCredentialDeploymentTransactionUseCase } from \"@internal/use-cases/credential-deployment/SignCredentialDeploymentTransactionUseCase\";\nimport { publicKeyTypes } from \"@internal/use-cases/publickey/di/publicKeyTypes\";\nimport { type GetPublicKeyUseCase } from \"@internal/use-cases/publickey/GetPublicKeyUseCase\";\nimport { transactionTypes } from \"@internal/use-cases/transaction/di/transactionTypes\";\nimport { type SignTransactionUseCase } from \"@internal/use-cases/transaction/SignTransactionUseCase\";\n\ntype DefaultSignerConcordiumConstructorArgs = {\n dmk: DeviceManagementKit;\n sessionId: DeviceSessionId;\n};\n\nexport class DefaultSignerConcordium implements SignerConcordium {\n private readonly _container: Container;\n\n constructor({
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,IAAA,eAAAC,EAAAH,
|
|
6
|
-
"names": ["DefaultSignerConcordium_exports", "__export", "DefaultSignerConcordium", "__toCommonJS", "import_di", "import_appConfigTypes", "import_credentialDeploymentTypes", "import_publicKeyTypes", "import_transactionTypes", "dmk", "sessionId", "derivationPath", "options", "transaction"]
|
|
4
|
+
"sourcesContent": ["import {\n type AccountOwnershipNetwork,\n type ContextModule,\n} from \"@ledgerhq/context-module\";\nimport {\n type DeviceManagementKit,\n type DeviceSessionId,\n} from \"@ledgerhq/device-management-kit\";\nimport { type Container } from \"inversify\";\n\nimport { type GetAppConfigDAReturnType } from \"@api/app-binder/GetAppConfigDeviceActionTypes\";\nimport { type GetPublicKeyDAReturnType } from \"@api/app-binder/GetPublicKeyDeviceActionTypes\";\nimport { type SignCredentialDeploymentTransactionDAReturnType } from \"@api/app-binder/SignCredentialDeploymentTransactionDeviceActionTypes\";\nimport { type SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type VerifyAddressDAReturnType } from \"@api/app-binder/VerifyAddressDeviceActionTypes\";\nimport { type PublicKeyOptions } from \"@api/model/PublicKeyOptions\";\nimport { type TransactionOptions } from \"@api/model/TransactionOptions\";\nimport { type VerifyAddressOptions } from \"@api/model/VerifyAddressOptions\";\nimport { type SignerConcordium } from \"@api/SignerConcordium\";\nimport { makeContainer } from \"@internal/di\";\nimport { appConfigTypes } from \"@internal/use-cases/app-config/di/appConfigTypes\";\nimport { type GetAppConfigUseCase } from \"@internal/use-cases/app-config/GetAppConfigUseCase\";\nimport { credentialDeploymentTypes } from \"@internal/use-cases/credential-deployment/di/credentialDeploymentTypes\";\nimport { type SignCredentialDeploymentTransactionUseCase } from \"@internal/use-cases/credential-deployment/SignCredentialDeploymentTransactionUseCase\";\nimport { publicKeyTypes } from \"@internal/use-cases/publickey/di/publicKeyTypes\";\nimport { type GetPublicKeyUseCase } from \"@internal/use-cases/publickey/GetPublicKeyUseCase\";\nimport { transactionTypes } from \"@internal/use-cases/transaction/di/transactionTypes\";\nimport { type SignTransactionUseCase } from \"@internal/use-cases/transaction/SignTransactionUseCase\";\nimport { verifyAddressTypes } from \"@internal/use-cases/verify-address/di/verifyAddressTypes\";\nimport { type VerifyAddressUseCase } from \"@internal/use-cases/verify-address/VerifyAddressUseCase\";\n\ntype DefaultSignerConcordiumConstructorArgs = {\n dmk: DeviceManagementKit;\n sessionId: DeviceSessionId;\n contextModule: ContextModule;\n};\n\nexport class DefaultSignerConcordium implements SignerConcordium {\n private readonly _container: Container;\n\n constructor({\n dmk,\n sessionId,\n contextModule,\n }: DefaultSignerConcordiumConstructorArgs) {\n this._container = makeContainer({ dmk, sessionId, contextModule });\n }\n\n getAppConfiguration(): GetAppConfigDAReturnType {\n return this._container\n .get<GetAppConfigUseCase>(appConfigTypes.GetAppConfigUseCase)\n .execute();\n }\n\n getPublicKey(\n derivationPath: string,\n options?: PublicKeyOptions,\n ): GetPublicKeyDAReturnType {\n return this._container\n .get<GetPublicKeyUseCase>(publicKeyTypes.GetPublicKeyUseCase)\n .execute(derivationPath, options);\n }\n\n signTransaction(\n derivationPath: string,\n transaction: Uint8Array,\n options?: TransactionOptions,\n ): SignTransactionDAReturnType {\n return this._container\n .get<SignTransactionUseCase>(transactionTypes.SignTransactionUseCase)\n .execute(derivationPath, transaction, options);\n }\n\n signCredentialDeploymentTransaction(\n derivationPath: string,\n transaction: Uint8Array,\n options?: TransactionOptions,\n ): SignCredentialDeploymentTransactionDAReturnType {\n return this._container\n .get<SignCredentialDeploymentTransactionUseCase>(\n credentialDeploymentTypes.SignCredentialDeploymentTransactionUseCase,\n )\n .execute(derivationPath, transaction, options);\n }\n\n verifyAddress(\n derivationPath: string,\n address: string,\n network: AccountOwnershipNetwork,\n options?: VerifyAddressOptions,\n ): VerifyAddressDAReturnType {\n return this._container\n .get<VerifyAddressUseCase>(verifyAddressTypes.VerifyAddressUseCase)\n .execute(derivationPath, address, network, options);\n }\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,IAAA,eAAAC,EAAAH,GAmBA,IAAAI,EAA8B,wBAC9BC,EAA+B,4DAE/BC,EAA0C,kFAE1CC,EAA+B,2DAE/BC,EAAiC,+DAEjCC,EAAmC,oEAS5B,MAAMP,CAAoD,CAC9C,WAEjB,YAAY,CACV,IAAAQ,EACA,UAAAC,EACA,cAAAC,CACF,EAA2C,CACzC,KAAK,cAAa,iBAAc,CAAE,IAAAF,EAAK,UAAAC,EAAW,cAAAC,CAAc,CAAC,CACnE,CAEA,qBAAgD,CAC9C,OAAO,KAAK,WACT,IAAyB,iBAAe,mBAAmB,EAC3D,QAAQ,CACb,CAEA,aACEC,EACAC,EAC0B,CAC1B,OAAO,KAAK,WACT,IAAyB,iBAAe,mBAAmB,EAC3D,QAAQD,EAAgBC,CAAO,CACpC,CAEA,gBACED,EACAE,EACAD,EAC6B,CAC7B,OAAO,KAAK,WACT,IAA4B,mBAAiB,sBAAsB,EACnE,QAAQD,EAAgBE,EAAaD,CAAO,CACjD,CAEA,oCACED,EACAE,EACAD,EACiD,CACjD,OAAO,KAAK,WACT,IACC,4BAA0B,0CAC5B,EACC,QAAQD,EAAgBE,EAAaD,CAAO,CACjD,CAEA,cACED,EACAG,EACAC,EACAH,EAC2B,CAC3B,OAAO,KAAK,WACT,IAA0B,qBAAmB,oBAAoB,EACjE,QAAQD,EAAgBG,EAASC,EAASH,CAAO,CACtD,CACF",
|
|
6
|
+
"names": ["DefaultSignerConcordium_exports", "__export", "DefaultSignerConcordium", "__toCommonJS", "import_di", "import_appConfigTypes", "import_credentialDeploymentTypes", "import_publicKeyTypes", "import_transactionTypes", "import_verifyAddressTypes", "dmk", "sessionId", "contextModule", "derivationPath", "options", "transaction", "address", "network"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var m=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var D=Object.getOwnPropertyNames;var T=Object.prototype.hasOwnProperty;var I=(r,e)=>{for(var t in e)m(r,t,{get:e[t],enumerable:!0})},C=(r,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of D(e))!T.call(r,n)&&n!==t&&m(r,n,{get:()=>e[n],enumerable:!(o=g(e,n))||o.enumerable});return r};var P=r=>C(m({},"__esModule",{value:!0}),r),u=(r,e,t,o)=>{for(var n=o>1?void 0:o?g(e,t):e,y=r.length-1,A;y>=0;y--)(A=r[y])&&(n=(o?A(e,t,n):A(n))||n);return o&&n&&m(e,t,n),n},a=(r,e)=>(t,o)=>e(t,o,r);var O={};I(O,{ConcordiumAppBinder:()=>d});module.exports=P(O);var i=require("@ledgerhq/device-management-kit"),s=require("inversify"),k=require("../app-binder/command/GetAppConfigCommand"),l=require("../app-binder/command/GetPublicKeyCommand"),p=require("../app-binder/constants"),f=require("../app-binder/task/SendCredentialDeploymentTransactionTask"),h=require("../app-binder/task/SignTransactionTaskFactory"),v=require("../app-binder/task/VerifyAddressTask"),c=require("../externalTypes");let d=class{constructor(e,t,o,n){this.dmk=e;this.sessionId=t;this.dmkLoggerFactory=o;this.contextModule=n}getAppConfiguration(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new i.SendCommandInAppDeviceAction({input:{command:new k.GetAppConfigCommand,appName:p.APP_NAME,requiredUserInteraction:i.UserInteractionRequired.None,skipOpenApp:e.skipOpenApp},logger:this.dmkLoggerFactory("GetAppConfigCommand")})})}getPublicKey(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new i.SendCommandInAppDeviceAction({input:{command:new l.GetPublicKeyCommand(e),appName:p.APP_NAME,requiredUserInteraction:e.checkOnDevice?i.UserInteractionRequired.VerifyAddress:i.UserInteractionRequired.None,skipOpenApp:e.skipOpenApp},logger:this.dmkLoggerFactory("GetPublicKeyCommand")})})}signTransaction(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new i.CallTaskInAppDeviceAction({input:{task:async t=>(0,h.createSignTransactionTask)(t,e,this.dmkLoggerFactory)(),appName:p.APP_NAME,requiredUserInteraction:i.UserInteractionRequired.SignTransaction,skipOpenApp:e.skipOpenApp??!1},logger:this.dmkLoggerFactory("SignTransaction")})})}signCredentialDeploymentTransaction(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new i.CallTaskInAppDeviceAction({input:{task:async t=>new f.SendCredentialDeploymentTransactionTask(t,{derivationPath:e.derivationPath,transaction:e.transaction},this.dmkLoggerFactory("SendCredentialDeploymentTransactionTask")).run(),appName:p.APP_NAME,requiredUserInteraction:i.UserInteractionRequired.SignTransaction,skipOpenApp:e.skipOpenApp??!1},logger:this.dmkLoggerFactory("SignCredentialDeploymentTransaction")})})}verifyAddress(e){return this.dmk.executeDeviceAction({sessionId:this.sessionId,deviceAction:new i.CallTaskInAppDeviceAction({input:{task:async t=>new v.VerifyAddressTask(t,{derivationPath:e.derivationPath,address:e.address,network:e.network,contextModule:this.contextModule},this.dmkLoggerFactory("VerifyAddressTask")).run(),appName:p.APP_NAME,requiredUserInteraction:i.UserInteractionRequired.VerifyAddress,skipOpenApp:e.skipOpenApp??!1},logger:this.dmkLoggerFactory("VerifyAddress")})})}};d=u([(0,s.injectable)(),a(0,(0,s.inject)(c.externalTypes.Dmk)),a(1,(0,s.inject)(c.externalTypes.SessionId)),a(2,(0,s.inject)(c.externalTypes.DmkLoggerFactory)),a(3,(0,s.inject)(c.externalTypes.ContextModule))],d);0&&(module.exports={ConcordiumAppBinder});
|
|
2
2
|
//# sourceMappingURL=ConcordiumAppBinder.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/internal/app-binder/ConcordiumAppBinder.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n CallTaskInAppDeviceAction,\n type DeviceManagementKit,\n type DeviceSessionId,\n LoggerPublisherService,\n SendCommandInAppDeviceAction,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport { type GetAppConfigDAReturnType } from \"@api/app-binder/GetAppConfigDeviceActionTypes\";\nimport { type GetPublicKeyDAReturnType } from \"@api/app-binder/GetPublicKeyDeviceActionTypes\";\nimport { type SignCredentialDeploymentTransactionDAReturnType } from \"@api/app-binder/SignCredentialDeploymentTransactionDeviceActionTypes\";\nimport { type SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { GetAppConfigCommand } from \"@internal/app-binder/command/GetAppConfigCommand\";\nimport {\n GetPublicKeyCommand,\n type GetPublicKeyCommandArgs,\n} from \"@internal/app-binder/command/GetPublicKeyCommand\";\nimport { APP_NAME } from \"@internal/app-binder/constants\";\nimport { SendCredentialDeploymentTransactionTask } from \"@internal/app-binder/task/SendCredentialDeploymentTransactionTask\";\nimport { createSignTransactionTask } from \"@internal/app-binder/task/SignTransactionTaskFactory\";\nimport { externalTypes } from \"@internal/externalTypes\";\n\n@injectable()\nexport class ConcordiumAppBinder {\n constructor(\n @inject(externalTypes.Dmk) private dmk: DeviceManagementKit,\n @inject(externalTypes.SessionId) private sessionId: DeviceSessionId,\n @inject(externalTypes.DmkLoggerFactory)\n private dmkLoggerFactory: (tag: string) => LoggerPublisherService,\n ) {}\n\n getAppConfiguration(args: {\n skipOpenApp: boolean;\n }): GetAppConfigDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetAppConfigCommand(),\n appName: APP_NAME,\n requiredUserInteraction: UserInteractionRequired.None,\n skipOpenApp: args.skipOpenApp,\n },\n logger: this.dmkLoggerFactory(\"GetAppConfigCommand\"),\n }),\n });\n }\n\n getPublicKey(args: GetPublicKeyCommandArgs): GetPublicKeyDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetPublicKeyCommand(args),\n appName: APP_NAME,\n requiredUserInteraction: args.checkOnDevice\n ? UserInteractionRequired.VerifyAddress\n : UserInteractionRequired.None,\n skipOpenApp: args.skipOpenApp,\n },\n logger: this.dmkLoggerFactory(\"GetPublicKeyCommand\"),\n }),\n });\n }\n\n signTransaction(args: {\n derivationPath: string;\n transaction: Uint8Array;\n skipOpenApp?: boolean;\n }): SignTransactionDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n createSignTransactionTask(\n internalApi,\n args,\n this.dmkLoggerFactory,\n )(),\n appName: APP_NAME,\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n skipOpenApp: args.skipOpenApp ?? false,\n },\n logger: this.dmkLoggerFactory(\"SignTransaction\"),\n }),\n });\n }\n\n signCredentialDeploymentTransaction(args: {\n derivationPath: string;\n transaction: Uint8Array;\n skipOpenApp?: boolean;\n }): SignCredentialDeploymentTransactionDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n new SendCredentialDeploymentTransactionTask(\n internalApi,\n {\n derivationPath: args.derivationPath,\n transaction: args.transaction,\n },\n this.dmkLoggerFactory(\"SendCredentialDeploymentTransactionTask\"),\n ).run(),\n appName: APP_NAME,\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n skipOpenApp: args.skipOpenApp ?? false,\n },\n logger: this.dmkLoggerFactory(\"SignCredentialDeploymentTransaction\"),\n }),\n });\n }\n}\n"],
|
|
5
|
-
"mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,IAAA,eAAAC,EAAAH,
|
|
6
|
-
"names": ["ConcordiumAppBinder_exports", "__export", "ConcordiumAppBinder", "__toCommonJS", "import_device_management_kit", "import_inversify", "import_GetAppConfigCommand", "import_GetPublicKeyCommand", "import_constants", "import_SendCredentialDeploymentTransactionTask", "import_SignTransactionTaskFactory", "import_externalTypes", "ConcordiumAppBinder", "dmk", "sessionId", "dmkLoggerFactory", "args", "internalApi", "__decorateClass", "__decorateParam"]
|
|
4
|
+
"sourcesContent": ["import {\n type AccountOwnershipNetwork,\n type ContextModule,\n} from \"@ledgerhq/context-module\";\nimport {\n CallTaskInAppDeviceAction,\n type DeviceManagementKit,\n type DeviceSessionId,\n LoggerPublisherService,\n SendCommandInAppDeviceAction,\n UserInteractionRequired,\n} from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport { type GetAppConfigDAReturnType } from \"@api/app-binder/GetAppConfigDeviceActionTypes\";\nimport { type GetPublicKeyDAReturnType } from \"@api/app-binder/GetPublicKeyDeviceActionTypes\";\nimport { type SignCredentialDeploymentTransactionDAReturnType } from \"@api/app-binder/SignCredentialDeploymentTransactionDeviceActionTypes\";\nimport { type SignTransactionDAReturnType } from \"@api/app-binder/SignTransactionDeviceActionTypes\";\nimport { type VerifyAddressDAReturnType } from \"@api/app-binder/VerifyAddressDeviceActionTypes\";\nimport { GetAppConfigCommand } from \"@internal/app-binder/command/GetAppConfigCommand\";\nimport {\n GetPublicKeyCommand,\n type GetPublicKeyCommandArgs,\n} from \"@internal/app-binder/command/GetPublicKeyCommand\";\nimport { APP_NAME } from \"@internal/app-binder/constants\";\nimport { SendCredentialDeploymentTransactionTask } from \"@internal/app-binder/task/SendCredentialDeploymentTransactionTask\";\nimport { createSignTransactionTask } from \"@internal/app-binder/task/SignTransactionTaskFactory\";\nimport { VerifyAddressTask } from \"@internal/app-binder/task/VerifyAddressTask\";\nimport { externalTypes } from \"@internal/externalTypes\";\n\n@injectable()\nexport class ConcordiumAppBinder {\n constructor(\n @inject(externalTypes.Dmk) private dmk: DeviceManagementKit,\n @inject(externalTypes.SessionId) private sessionId: DeviceSessionId,\n @inject(externalTypes.DmkLoggerFactory)\n private dmkLoggerFactory: (tag: string) => LoggerPublisherService,\n @inject(externalTypes.ContextModule)\n private readonly contextModule: ContextModule,\n ) {}\n\n getAppConfiguration(args: {\n skipOpenApp: boolean;\n }): GetAppConfigDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetAppConfigCommand(),\n appName: APP_NAME,\n requiredUserInteraction: UserInteractionRequired.None,\n skipOpenApp: args.skipOpenApp,\n },\n logger: this.dmkLoggerFactory(\"GetAppConfigCommand\"),\n }),\n });\n }\n\n getPublicKey(args: GetPublicKeyCommandArgs): GetPublicKeyDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new SendCommandInAppDeviceAction({\n input: {\n command: new GetPublicKeyCommand(args),\n appName: APP_NAME,\n requiredUserInteraction: args.checkOnDevice\n ? UserInteractionRequired.VerifyAddress\n : UserInteractionRequired.None,\n skipOpenApp: args.skipOpenApp,\n },\n logger: this.dmkLoggerFactory(\"GetPublicKeyCommand\"),\n }),\n });\n }\n\n signTransaction(args: {\n derivationPath: string;\n transaction: Uint8Array;\n skipOpenApp?: boolean;\n }): SignTransactionDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n createSignTransactionTask(\n internalApi,\n args,\n this.dmkLoggerFactory,\n )(),\n appName: APP_NAME,\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n skipOpenApp: args.skipOpenApp ?? false,\n },\n logger: this.dmkLoggerFactory(\"SignTransaction\"),\n }),\n });\n }\n\n signCredentialDeploymentTransaction(args: {\n derivationPath: string;\n transaction: Uint8Array;\n skipOpenApp?: boolean;\n }): SignCredentialDeploymentTransactionDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n new SendCredentialDeploymentTransactionTask(\n internalApi,\n {\n derivationPath: args.derivationPath,\n transaction: args.transaction,\n },\n this.dmkLoggerFactory(\"SendCredentialDeploymentTransactionTask\"),\n ).run(),\n appName: APP_NAME,\n requiredUserInteraction: UserInteractionRequired.SignTransaction,\n skipOpenApp: args.skipOpenApp ?? false,\n },\n logger: this.dmkLoggerFactory(\"SignCredentialDeploymentTransaction\"),\n }),\n });\n }\n\n verifyAddress(args: {\n derivationPath: string;\n address: string;\n network: AccountOwnershipNetwork;\n skipOpenApp?: boolean;\n }): VerifyAddressDAReturnType {\n return this.dmk.executeDeviceAction({\n sessionId: this.sessionId,\n deviceAction: new CallTaskInAppDeviceAction({\n input: {\n task: async (internalApi) =>\n new VerifyAddressTask(\n internalApi,\n {\n derivationPath: args.derivationPath,\n address: args.address,\n network: args.network,\n contextModule: this.contextModule,\n },\n this.dmkLoggerFactory(\"VerifyAddressTask\"),\n ).run(),\n appName: APP_NAME,\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n skipOpenApp: args.skipOpenApp ?? false,\n },\n logger: this.dmkLoggerFactory(\"VerifyAddress\"),\n }),\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,IAAA,eAAAC,EAAAH,GAIA,IAAAI,EAOO,2CACPC,EAAmC,qBAOnCC,EAAoC,4DACpCC,EAGO,4DACPC,EAAyB,0CACzBC,EAAwD,6EACxDC,EAA0C,gEAC1CC,EAAkC,uDAClCC,EAA8B,mCAGvB,IAAMC,EAAN,KAA0B,CAC/B,YACqCC,EACMC,EAEjCC,EAESC,EACjB,CANmC,SAAAH,EACM,eAAAC,EAEjC,sBAAAC,EAES,mBAAAC,CAChB,CAEH,oBAAoBC,EAES,CAC3B,OAAO,KAAK,IAAI,oBAAoB,CAClC,UAAW,KAAK,UAChB,aAAc,IAAI,+BAA6B,CAC7C,MAAO,CACL,QAAS,IAAI,sBACb,QAAS,WACT,wBAAyB,0BAAwB,KACjD,YAAaA,EAAK,WACpB,EACA,OAAQ,KAAK,iBAAiB,qBAAqB,CACrD,CAAC,CACH,CAAC,CACH,CAEA,aAAaA,EAAyD,CACpE,OAAO,KAAK,IAAI,oBAAoB,CAClC,UAAW,KAAK,UAChB,aAAc,IAAI,+BAA6B,CAC7C,MAAO,CACL,QAAS,IAAI,sBAAoBA,CAAI,EACrC,QAAS,WACT,wBAAyBA,EAAK,cAC1B,0BAAwB,cACxB,0BAAwB,KAC5B,YAAaA,EAAK,WACpB,EACA,OAAQ,KAAK,iBAAiB,qBAAqB,CACrD,CAAC,CACH,CAAC,CACH,CAEA,gBAAgBA,EAIgB,CAC9B,OAAO,KAAK,IAAI,oBAAoB,CAClC,UAAW,KAAK,UAChB,aAAc,IAAI,4BAA0B,CAC1C,MAAO,CACL,KAAM,MAAOC,MACX,6BACEA,EACAD,EACA,KAAK,gBACP,EAAE,EACJ,QAAS,WACT,wBAAyB,0BAAwB,gBACjD,YAAaA,EAAK,aAAe,EACnC,EACA,OAAQ,KAAK,iBAAiB,iBAAiB,CACjD,CAAC,CACH,CAAC,CACH,CAEA,oCAAoCA,EAIgB,CAClD,OAAO,KAAK,IAAI,oBAAoB,CAClC,UAAW,KAAK,UAChB,aAAc,IAAI,4BAA0B,CAC1C,MAAO,CACL,KAAM,MAAOC,GACX,IAAI,0CACFA,EACA,CACE,eAAgBD,EAAK,eACrB,YAAaA,EAAK,WACpB,EACA,KAAK,iBAAiB,yCAAyC,CACjE,EAAE,IAAI,EACR,QAAS,WACT,wBAAyB,0BAAwB,gBACjD,YAAaA,EAAK,aAAe,EACnC,EACA,OAAQ,KAAK,iBAAiB,qCAAqC,CACrE,CAAC,CACH,CAAC,CACH,CAEA,cAAcA,EAKgB,CAC5B,OAAO,KAAK,IAAI,oBAAoB,CAClC,UAAW,KAAK,UAChB,aAAc,IAAI,4BAA0B,CAC1C,MAAO,CACL,KAAM,MAAOC,GACX,IAAI,oBACFA,EACA,CACE,eAAgBD,EAAK,eACrB,QAASA,EAAK,QACd,QAASA,EAAK,QACd,cAAe,KAAK,aACtB,EACA,KAAK,iBAAiB,mBAAmB,CAC3C,EAAE,IAAI,EACR,QAAS,WACT,wBAAyB,0BAAwB,cACjD,YAAaA,EAAK,aAAe,EACnC,EACA,OAAQ,KAAK,iBAAiB,eAAe,CAC/C,CAAC,CACH,CAAC,CACH,CACF,EA5HaL,EAANO,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,gBAAc,GAAG,GACxBA,EAAA,eAAO,gBAAc,SAAS,GAC9BA,EAAA,eAAO,gBAAc,gBAAgB,GAErCA,EAAA,eAAO,gBAAc,aAAa,IAN1BR",
|
|
6
|
+
"names": ["ConcordiumAppBinder_exports", "__export", "ConcordiumAppBinder", "__toCommonJS", "import_device_management_kit", "import_inversify", "import_GetAppConfigCommand", "import_GetPublicKeyCommand", "import_constants", "import_SendCredentialDeploymentTransactionTask", "import_SignTransactionTaskFactory", "import_VerifyAddressTask", "import_externalTypes", "ConcordiumAppBinder", "dmk", "sessionId", "dmkLoggerFactory", "contextModule", "args", "internalApi", "__decorateClass", "__decorateParam"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var l=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var c=(o,e)=>{for(var n in e)l(o,n,{get:e[n],enumerable:!0})},E=(o,e,n,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of i(e))!u.call(o,t)&&t!==n&&l(o,t,{get:()=>e[t],enumerable:!(a=C(e,t))||a.enumerable});return o};var g=o=>E(l({},"__esModule",{value:!0}),o);var h={};c(h,{GetChallengeCommand:()=>y});module.exports=g(h);var r=require("@ledgerhq/device-management-kit"),p=require("@ledgerhq/signer-utils"),s=require("purify-ts"),d=require("../../app-binder/command/utils/ConcordiumApplicationErrors"),m=require("../../app-binder/constants");const R=8;class y{name="GetChallenge";errorHelper=new p.CommandErrorHelper(d.CONCORDIUM_APP_ERRORS,d.ConcordiumAppCommandErrorFactory);getApdu(){return new r.ApduBuilder({cla:m.LEDGER_CLA,ins:m.INS.GET_CHALLENGE,p1:0,p2:m.P2.NONE}).build()}parseResponse(e){return s.Maybe.fromNullable(this.errorHelper.getError(e)).orDefaultLazy(()=>{const n=new r.ApduParser(e),a=n.extractFieldByLength(R);if(a===void 0)return(0,r.CommandResultFactory)({error:new r.InvalidStatusWordError("Challenge is missing")});const t=n.encodeToHexaString(a);return(0,r.CommandResultFactory)({data:{challenge:t}})})}}0&&(module.exports={GetChallengeCommand});
|
|
2
|
+
//# sourceMappingURL=GetChallengeCommand.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/internal/app-binder/command/GetChallengeCommand.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n ApduParser,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n InvalidStatusWordError,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n CONCORDIUM_APP_ERRORS,\n ConcordiumAppCommandErrorFactory,\n type ConcordiumErrorCodes,\n} from \"@internal/app-binder/command/utils/ConcordiumApplicationErrors\";\nimport { INS, LEDGER_CLA, P2 } from \"@internal/app-binder/constants\";\n\nconst CHALLENGE_LENGTH = 8;\n\nexport type GetChallengeCommandResponse = {\n challenge: string;\n};\n\nexport class GetChallengeCommand\n implements Command<GetChallengeCommandResponse, void, ConcordiumErrorCodes>\n{\n readonly name = \"GetChallenge\";\n\n private readonly errorHelper = new CommandErrorHelper<\n GetChallengeCommandResponse,\n ConcordiumErrorCodes\n >(CONCORDIUM_APP_ERRORS, ConcordiumAppCommandErrorFactory);\n\n getApdu(): Apdu {\n return new ApduBuilder({\n cla: LEDGER_CLA,\n ins: INS.GET_CHALLENGE,\n p1: 0x00,\n p2: P2.NONE,\n }).build();\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<GetChallengeCommandResponse, ConcordiumErrorCodes> {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefaultLazy(() => {\n const apduParser = new ApduParser(apduResponse);\n const challengeField = apduParser.extractFieldByLength(CHALLENGE_LENGTH);\n\n if (challengeField === undefined) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"Challenge is missing\"),\n });\n }\n\n const challenge = apduParser.encodeToHexaString(challengeField);\n\n return CommandResultFactory({\n data: { challenge },\n });\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EASO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAEtBC,EAIO,0EACPC,EAAoC,0CAEpC,MAAMC,EAAmB,EAMlB,MAAMP,CAEb,CACW,KAAO,eAEC,YAAc,IAAI,qBAGjC,wBAAuB,kCAAgC,EAEzD,SAAgB,CACd,OAAO,IAAI,cAAY,CACrB,IAAK,aACL,IAAK,MAAI,cACT,GAAI,EACJ,GAAI,KAAG,IACT,CAAC,EAAE,MAAM,CACX,CAEA,cACEQ,EACkE,CAClE,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAY,CACxC,EAAE,cAAc,IAAM,CACpB,MAAMC,EAAa,IAAI,aAAWD,CAAY,EACxCE,EAAiBD,EAAW,qBAAqBF,CAAgB,EAEvE,GAAIG,IAAmB,OACrB,SAAO,wBAAqB,CAC1B,MAAO,IAAI,yBAAuB,sBAAsB,CAC1D,CAAC,EAGH,MAAMC,EAAYF,EAAW,mBAAmBC,CAAc,EAE9D,SAAO,wBAAqB,CAC1B,KAAM,CAAE,UAAAC,CAAU,CACpB,CAAC,CACH,CAAC,CACH,CACF",
|
|
6
|
+
"names": ["GetChallengeCommand_exports", "__export", "GetChallengeCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_purify_ts", "import_ConcordiumApplicationErrors", "import_constants", "CHALLENGE_LENGTH", "apduResponse", "apduParser", "challengeField", "challenge"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var e=require("@ledgerhq/device-management-kit"),n=require("../../app-binder/command/GetChallengeCommand"),c=require("../../app-binder/command/utils/ConcordiumApplicationErrors"),a=require("../../app-binder/constants");describe("GetChallengeCommand",()=>{describe("getApdu",()=>{it("should build APDU with correct header",()=>{const t=new n.GetChallengeCommand().getApdu().getRawApdu();expect(t[0]).toBe(a.LEDGER_CLA),expect(t[1]).toBe(a.INS.GET_CHALLENGE),expect(t[2]).toBe(0),expect(t[3]).toBe(a.P2.NONE)}),it("should have no data payload",()=>{const t=new n.GetChallengeCommand().getApdu().getRawApdu();expect(t.length).toBe(5),expect(t[4]).toBe(0)})}),describe("parseResponse",()=>{it("should extract 8-byte challenge as hex string on success",()=>{const r=new n.GetChallengeCommand,t=new Uint8Array([170,187,204,221,17,34,51,68]),o=new e.ApduResponse({statusCode:new Uint8Array([144,0]),data:t}),s=r.parseResponse(o);expect((0,e.isSuccessCommandResult)(s)).toBe(!0),(0,e.isSuccessCommandResult)(s)&&expect(s.data.challenge).toBe("aabbccdd11223344")}),it("should return InvalidStatusWordError when data is too short",()=>{const r=new n.GetChallengeCommand,t=new e.ApduResponse({statusCode:new Uint8Array([144,0]),data:new Uint8Array(4)}),o=r.parseResponse(t);expect((0,e.isSuccessCommandResult)(o)).toBe(!1),(0,e.isSuccessCommandResult)(o)||expect(o.error).toBeInstanceOf(e.InvalidStatusWordError)}),it("should return InvalidStatusWordError when data is empty",()=>{const r=new n.GetChallengeCommand,t=new e.ApduResponse({statusCode:new Uint8Array([144,0]),data:new Uint8Array(0)}),o=r.parseResponse(t);expect((0,e.isSuccessCommandResult)(o)).toBe(!1),(0,e.isSuccessCommandResult)(o)||expect(o.error).toBeInstanceOf(e.InvalidStatusWordError)}),it("should return ConcordiumAppCommandError on user rejection",()=>{const r=new n.GetChallengeCommand,t=new e.ApduResponse({statusCode:new Uint8Array([105,133]),data:new Uint8Array([])}),o=r.parseResponse(t);if(expect((0,e.isSuccessCommandResult)(o)).toBe(!1),!(0,e.isSuccessCommandResult)(o)){const s=o.error;expect(s.errorCode).toBe(c.ConcordiumErrorCodes.USER_REJECTED)}}),it("should return ConcordiumAppCommandError on INS not supported",()=>{const r=new n.GetChallengeCommand,t=new e.ApduResponse({statusCode:new Uint8Array([109,0]),data:new Uint8Array([])}),o=r.parseResponse(t);if(expect((0,e.isSuccessCommandResult)(o)).toBe(!1),!(0,e.isSuccessCommandResult)(o)){const s=o.error;expect(s.errorCode).toBe(c.ConcordiumErrorCodes.INS_NOT_SUPPORTED)}})})});
|
|
2
|
+
//# sourceMappingURL=GetChallengeCommand.test.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/internal/app-binder/command/GetChallengeCommand.test.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n ApduResponse,\n InvalidStatusWordError,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { GetChallengeCommand } from \"@internal/app-binder/command/GetChallengeCommand\";\nimport {\n type ConcordiumAppCommandError,\n ConcordiumErrorCodes,\n} from \"@internal/app-binder/command/utils/ConcordiumApplicationErrors\";\nimport { INS, LEDGER_CLA, P2 } from \"@internal/app-binder/constants\";\n\ndescribe(\"GetChallengeCommand\", () => {\n describe(\"getApdu\", () => {\n it(\"should build APDU with correct header\", () => {\n const command = new GetChallengeCommand();\n const raw = command.getApdu().getRawApdu();\n\n expect(raw[0]).toBe(LEDGER_CLA);\n expect(raw[1]).toBe(INS.GET_CHALLENGE);\n expect(raw[2]).toBe(0x00);\n expect(raw[3]).toBe(P2.NONE);\n });\n\n it(\"should have no data payload\", () => {\n const command = new GetChallengeCommand();\n const raw = command.getApdu().getRawApdu();\n\n expect(raw.length).toBe(5);\n expect(raw[4]).toBe(0x00);\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should extract 8-byte challenge as hex string on success\", () => {\n const command = new GetChallengeCommand();\n const challengeBytes = new Uint8Array([\n 0xaa, 0xbb, 0xcc, 0xdd, 0x11, 0x22, 0x33, 0x44,\n ]);\n const response = new ApduResponse({\n statusCode: new Uint8Array([0x90, 0x00]),\n data: challengeBytes,\n });\n\n const result = command.parseResponse(response);\n\n expect(isSuccessCommandResult(result)).toBe(true);\n if (isSuccessCommandResult(result)) {\n expect(result.data.challenge).toBe(\"aabbccdd11223344\");\n }\n });\n\n it(\"should return InvalidStatusWordError when data is too short\", () => {\n const command = new GetChallengeCommand();\n const response = new ApduResponse({\n statusCode: new Uint8Array([0x90, 0x00]),\n data: new Uint8Array(4),\n });\n\n const result = command.parseResponse(response);\n\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect(result.error).toBeInstanceOf(InvalidStatusWordError);\n }\n });\n\n it(\"should return InvalidStatusWordError when data is empty\", () => {\n const command = new GetChallengeCommand();\n const response = new ApduResponse({\n statusCode: new Uint8Array([0x90, 0x00]),\n data: new Uint8Array(0),\n });\n\n const result = command.parseResponse(response);\n\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect(result.error).toBeInstanceOf(InvalidStatusWordError);\n }\n });\n\n it(\"should return ConcordiumAppCommandError on user rejection\", () => {\n const command = new GetChallengeCommand();\n const response = new ApduResponse({\n statusCode: new Uint8Array([0x69, 0x85]),\n data: new Uint8Array([]),\n });\n\n const result = command.parseResponse(response);\n\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n const err = result.error as ConcordiumAppCommandError;\n expect(err.errorCode).toBe(ConcordiumErrorCodes.USER_REJECTED);\n }\n });\n\n it(\"should return ConcordiumAppCommandError on INS not supported\", () => {\n const command = new GetChallengeCommand();\n const response = new ApduResponse({\n statusCode: new Uint8Array([0x6d, 0x00]),\n data: new Uint8Array([]),\n });\n\n const result = command.parseResponse(response);\n\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n const err = result.error as ConcordiumAppCommandError;\n expect(err.errorCode).toBe(ConcordiumErrorCodes.INS_NOT_SUPPORTED);\n }\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_device_management_kit", "import_GetChallengeCommand", "import_ConcordiumApplicationErrors", "import_constants", "raw", "command", "challengeBytes", "response", "result", "err"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var p=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var y=(e,r)=>{for(var m in r)p(e,m,{get:r[m],enumerable:!0})},A=(e,r,m,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let d of C(r))!l.call(e,d)&&d!==m&&p(e,d,{get:()=>r[d],enumerable:!(n=i(r,d))||n.enumerable});return e};var E=e=>A(p({},"__esModule",{value:!0}),e);var c={};y(c,{SetTrustedNameCommand:()=>R});module.exports=E(c);var a=require("@ledgerhq/device-management-kit"),s=require("@ledgerhq/signer-utils"),u=require("purify-ts"),t=require("../../app-binder/command/utils/ConcordiumApplicationErrors"),o=require("../../app-binder/constants");class R{constructor(r){this.args=r}name="SetTrustedName";errorHelper=new s.CommandErrorHelper(t.CONCORDIUM_APP_ERRORS,t.ConcordiumAppCommandErrorFactory);getApdu(){return new a.ApduBuilder({cla:o.LEDGER_CLA,ins:o.INS.SET_TRUSTED_NAME,p1:0,p2:o.P2.NONE}).addBufferToData(this.args.payload).build()}parseResponse(r){return u.Maybe.fromNullable(this.errorHelper.getError(r)).orDefault((0,a.CommandResultFactory)({data:void 0}))}}0&&(module.exports={SetTrustedNameCommand});
|
|
2
|
+
//# sourceMappingURL=SetTrustedNameCommand.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/internal/app-binder/command/SetTrustedNameCommand.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n CONCORDIUM_APP_ERRORS,\n ConcordiumAppCommandErrorFactory,\n type ConcordiumErrorCodes,\n} from \"@internal/app-binder/command/utils/ConcordiumApplicationErrors\";\nimport { INS, LEDGER_CLA, P2 } from \"@internal/app-binder/constants\";\n\nexport type SetTrustedNameCommandArgs = {\n readonly payload: Uint8Array;\n};\n\nexport class SetTrustedNameCommand\n implements Command<void, SetTrustedNameCommandArgs, ConcordiumErrorCodes>\n{\n readonly name = \"SetTrustedName\";\n\n private readonly errorHelper = new CommandErrorHelper<\n void,\n ConcordiumErrorCodes\n >(CONCORDIUM_APP_ERRORS, ConcordiumAppCommandErrorFactory);\n\n constructor(private readonly args: SetTrustedNameCommandArgs) {}\n\n getApdu(): Apdu {\n return new ApduBuilder({\n cla: LEDGER_CLA,\n ins: INS.SET_TRUSTED_NAME,\n p1: 0x00,\n p2: P2.NONE,\n })\n .addBufferToData(this.args.payload)\n .build();\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<void, ConcordiumErrorCodes> {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefault(CommandResultFactory({ data: undefined }));\n }\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,2BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAOO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAEtBC,EAIO,0EACPC,EAAoC,0CAM7B,MAAMN,CAEb,CAQE,YAA6BO,EAAiC,CAAjC,UAAAA,CAAkC,CAPtD,KAAO,iBAEC,YAAc,IAAI,qBAGjC,wBAAuB,kCAAgC,EAIzD,SAAgB,CACd,OAAO,IAAI,cAAY,CACrB,IAAK,aACL,IAAK,MAAI,iBACT,GAAI,EACJ,GAAI,KAAG,IACT,CAAC,EACE,gBAAgB,KAAK,KAAK,OAAO,EACjC,MAAM,CACX,CAEA,cACEC,EAC2C,CAC3C,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAY,CACxC,EAAE,aAAU,wBAAqB,CAAE,KAAM,MAAU,CAAC,CAAC,CACvD,CACF",
|
|
6
|
+
"names": ["SetTrustedNameCommand_exports", "__export", "SetTrustedNameCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_purify_ts", "import_ConcordiumApplicationErrors", "import_constants", "args", "apduResponse"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var r=require("@ledgerhq/device-management-kit"),a=require("../../app-binder/command/SetTrustedNameCommand"),p=require("../../app-binder/command/utils/ConcordiumApplicationErrors"),s=require("../../app-binder/constants");describe("SetTrustedNameCommand",()=>{const n=new Uint8Array([1,2,3,4,5]);describe("getApdu",()=>{it("should build APDU with correct header",()=>{const e=new a.SetTrustedNameCommand({payload:n}).getApdu().getRawApdu();expect(e[0]).toBe(s.LEDGER_CLA),expect(e[1]).toBe(s.INS.SET_TRUSTED_NAME),expect(e[2]).toBe(0),expect(e[3]).toBe(s.P2.NONE)}),it("should include payload in data",()=>{const e=new a.SetTrustedNameCommand({payload:n}).getApdu().getRawApdu();expect(e.length).toBe(5+n.length),expect(e.slice(5)).toStrictEqual(n)}),it("should handle large payload",()=>{const t=new Uint8Array(200).fill(255),o=new a.SetTrustedNameCommand({payload:t}).getApdu().getRawApdu();expect(o.length).toBe(205)})}),describe("parseResponse",()=>{it("should return success on 0x9000",()=>{const t=new a.SetTrustedNameCommand({payload:n}),e=new r.ApduResponse({statusCode:new Uint8Array([144,0]),data:new Uint8Array([])}),o=t.parseResponse(e);expect((0,r.isSuccessCommandResult)(o)).toBe(!0)}),it("should return ConcordiumAppCommandError on invalid param",()=>{const t=new a.SetTrustedNameCommand({payload:n}),e=new r.ApduResponse({statusCode:new Uint8Array([106,128]),data:new Uint8Array([])}),o=t.parseResponse(e);if(expect((0,r.isSuccessCommandResult)(o)).toBe(!1),!(0,r.isSuccessCommandResult)(o)){const d=o.error;expect(d.errorCode).toBe(p.ConcordiumErrorCodes.DATA_INVALID)}}),it("should return ConcordiumAppCommandError on user rejection",()=>{const t=new a.SetTrustedNameCommand({payload:n}),e=new r.ApduResponse({statusCode:new Uint8Array([105,133]),data:new Uint8Array([])}),o=t.parseResponse(e);if(expect((0,r.isSuccessCommandResult)(o)).toBe(!1),!(0,r.isSuccessCommandResult)(o)){const d=o.error;expect(d.errorCode).toBe(p.ConcordiumErrorCodes.USER_REJECTED)}}),it("should return ConcordiumAppCommandError on INS not supported",()=>{const t=new a.SetTrustedNameCommand({payload:n}),e=new r.ApduResponse({statusCode:new Uint8Array([109,0]),data:new Uint8Array([])}),o=t.parseResponse(e);if(expect((0,r.isSuccessCommandResult)(o)).toBe(!1),!(0,r.isSuccessCommandResult)(o)){const d=o.error;expect(d.errorCode).toBe(p.ConcordiumErrorCodes.INS_NOT_SUPPORTED)}})})});
|
|
2
|
+
//# sourceMappingURL=SetTrustedNameCommand.test.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/internal/app-binder/command/SetTrustedNameCommand.test.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n ApduResponse,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { SetTrustedNameCommand } from \"@internal/app-binder/command/SetTrustedNameCommand\";\nimport {\n type ConcordiumAppCommandError,\n ConcordiumErrorCodes,\n} from \"@internal/app-binder/command/utils/ConcordiumApplicationErrors\";\nimport { INS, LEDGER_CLA, P2 } from \"@internal/app-binder/constants\";\n\ndescribe(\"SetTrustedNameCommand\", () => {\n const samplePayload = new Uint8Array([0x01, 0x02, 0x03, 0x04, 0x05]);\n\n describe(\"getApdu\", () => {\n it(\"should build APDU with correct header\", () => {\n const command = new SetTrustedNameCommand({ payload: samplePayload });\n const raw = command.getApdu().getRawApdu();\n\n expect(raw[0]).toBe(LEDGER_CLA);\n expect(raw[1]).toBe(INS.SET_TRUSTED_NAME);\n expect(raw[2]).toBe(0x00);\n expect(raw[3]).toBe(P2.NONE);\n });\n\n it(\"should include payload in data\", () => {\n const command = new SetTrustedNameCommand({ payload: samplePayload });\n const raw = command.getApdu().getRawApdu();\n\n // Header (5 bytes) + payload\n expect(raw.length).toBe(5 + samplePayload.length);\n expect(raw.slice(5)).toStrictEqual(samplePayload);\n });\n\n it(\"should handle large payload\", () => {\n const largePayload = new Uint8Array(200).fill(0xff);\n const command = new SetTrustedNameCommand({ payload: largePayload });\n const raw = command.getApdu().getRawApdu();\n\n expect(raw.length).toBe(5 + 200);\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should return success on 0x9000\", () => {\n const command = new SetTrustedNameCommand({ payload: samplePayload });\n const response = new ApduResponse({\n statusCode: new Uint8Array([0x90, 0x00]),\n data: new Uint8Array([]),\n });\n\n const result = command.parseResponse(response);\n\n expect(isSuccessCommandResult(result)).toBe(true);\n });\n\n it(\"should return ConcordiumAppCommandError on invalid param\", () => {\n const command = new SetTrustedNameCommand({ payload: samplePayload });\n const response = new ApduResponse({\n statusCode: new Uint8Array([0x6a, 0x80]),\n data: new Uint8Array([]),\n });\n\n const result = command.parseResponse(response);\n\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n const err = result.error as ConcordiumAppCommandError;\n expect(err.errorCode).toBe(ConcordiumErrorCodes.DATA_INVALID);\n }\n });\n\n it(\"should return ConcordiumAppCommandError on user rejection\", () => {\n const command = new SetTrustedNameCommand({ payload: samplePayload });\n const response = new ApduResponse({\n statusCode: new Uint8Array([0x69, 0x85]),\n data: new Uint8Array([]),\n });\n\n const result = command.parseResponse(response);\n\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n const err = result.error as ConcordiumAppCommandError;\n expect(err.errorCode).toBe(ConcordiumErrorCodes.USER_REJECTED);\n }\n });\n\n it(\"should return ConcordiumAppCommandError on INS not supported\", () => {\n const command = new SetTrustedNameCommand({ payload: samplePayload });\n const response = new ApduResponse({\n statusCode: new Uint8Array([0x6d, 0x00]),\n data: new Uint8Array([]),\n });\n\n const result = command.parseResponse(response);\n\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n const err = result.error as ConcordiumAppCommandError;\n expect(err.errorCode).toBe(ConcordiumErrorCodes.INS_NOT_SUPPORTED);\n }\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_device_management_kit", "import_SetTrustedNameCommand", "import_ConcordiumApplicationErrors", "import_constants", "samplePayload", "raw", "largePayload", "command", "response", "result", "err"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var n=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var y=(o,r)=>{for(var d in r)n(o,d,{get:r[d],enumerable:!0})},f=(o,r,d,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let m of l(r))!A.call(o,m)&&m!==d&&n(o,m,{get:()=>r[m],enumerable:!(s=C(r,m))||s.enumerable});return o};var c=o=>f(n({},"__esModule",{value:!0}),o);var R={};y(R,{VerifyAddressCommand:()=>E});module.exports=c(R);var t=require("@ledgerhq/device-management-kit"),i=require("@ledgerhq/signer-utils"),p=require("purify-ts"),a=require("../../app-binder/command/utils/ConcordiumApplicationErrors"),u=require("../../app-binder/command/utils/EncodeDerivationPath"),e=require("../../app-binder/constants");class E{constructor(r){this.args=r}name="VerifyAddress";errorHelper=new i.CommandErrorHelper(a.CONCORDIUM_APP_ERRORS,a.ConcordiumAppCommandErrorFactory);getApdu(){const r=new t.ApduBuilder({cla:e.LEDGER_CLA,ins:e.INS.VERIFY_ADDRESS,p1:e.P1.FULL_PATH,p2:e.P2.NONE}),d=(0,u.encodeDerivationPath)(this.args.derivationPath);return r.addBufferToData(d),r.build()}parseResponse(r){return p.Maybe.fromNullable(this.errorHelper.getError(r)).orDefault((0,t.CommandResultFactory)({data:void 0}))}}0&&(module.exports={VerifyAddressCommand});
|
|
2
|
+
//# sourceMappingURL=VerifyAddressCommand.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/internal/app-binder/command/VerifyAddressCommand.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n type Apdu,\n ApduBuilder,\n type ApduResponse,\n type Command,\n type CommandResult,\n CommandResultFactory,\n} from \"@ledgerhq/device-management-kit\";\nimport { CommandErrorHelper } from \"@ledgerhq/signer-utils\";\nimport { Maybe } from \"purify-ts\";\n\nimport {\n CONCORDIUM_APP_ERRORS,\n ConcordiumAppCommandErrorFactory,\n type ConcordiumErrorCodes,\n} from \"@internal/app-binder/command/utils/ConcordiumApplicationErrors\";\nimport { encodeDerivationPath } from \"@internal/app-binder/command/utils/EncodeDerivationPath\";\nimport { INS, LEDGER_CLA, P1, P2 } from \"@internal/app-binder/constants\";\n\nexport type VerifyAddressCommandArgs = {\n readonly derivationPath: string;\n};\n\nexport class VerifyAddressCommand\n implements Command<void, VerifyAddressCommandArgs, ConcordiumErrorCodes>\n{\n readonly name = \"VerifyAddress\";\n\n private readonly errorHelper = new CommandErrorHelper<\n void,\n ConcordiumErrorCodes\n >(CONCORDIUM_APP_ERRORS, ConcordiumAppCommandErrorFactory);\n\n constructor(private readonly args: VerifyAddressCommandArgs) {}\n\n getApdu(): Apdu {\n const apduBuilder = new ApduBuilder({\n cla: LEDGER_CLA,\n ins: INS.VERIFY_ADDRESS,\n p1: P1.FULL_PATH,\n p2: P2.NONE,\n });\n\n const encodedPath = encodeDerivationPath(this.args.derivationPath);\n apduBuilder.addBufferToData(encodedPath);\n\n return apduBuilder.build();\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<void, ConcordiumErrorCodes> {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefault(CommandResultFactory({ data: undefined }));\n }\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAOO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAEtBC,EAIO,0EACPC,EAAqC,mEACrCC,EAAwC,0CAMjC,MAAMP,CAEb,CAQE,YAA6BQ,EAAgC,CAAhC,UAAAA,CAAiC,CAPrD,KAAO,gBAEC,YAAc,IAAI,qBAGjC,wBAAuB,kCAAgC,EAIzD,SAAgB,CACd,MAAMC,EAAc,IAAI,cAAY,CAClC,IAAK,aACL,IAAK,MAAI,eACT,GAAI,KAAG,UACP,GAAI,KAAG,IACT,CAAC,EAEKC,KAAc,wBAAqB,KAAK,KAAK,cAAc,EACjE,OAAAD,EAAY,gBAAgBC,CAAW,EAEhCD,EAAY,MAAM,CAC3B,CAEA,cACEE,EAC2C,CAC3C,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAY,CACxC,EAAE,aAAU,wBAAqB,CAAE,KAAM,MAAU,CAAC,CAAC,CACvD,CACF",
|
|
6
|
+
"names": ["VerifyAddressCommand_exports", "__export", "VerifyAddressCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_purify_ts", "import_ConcordiumApplicationErrors", "import_EncodeDerivationPath", "import_constants", "args", "apduBuilder", "encodedPath", "apduResponse"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var r=require("@ledgerhq/device-management-kit"),c=require("../../app-binder/command/utils/ConcordiumApplicationErrors"),n=require("../../app-binder/command/VerifyAddressCommand"),s=require("../../app-binder/constants");const d="44'/919'/0'/0'/0'";describe("VerifyAddressCommand",()=>{describe("getApdu",()=>{it("should build APDU with correct header",()=>{const e=new n.VerifyAddressCommand({derivationPath:d}).getApdu().getRawApdu();expect(e[0]).toBe(s.LEDGER_CLA),expect(e[1]).toBe(s.INS.VERIFY_ADDRESS),expect(e[2]).toBe(s.P1.FULL_PATH),expect(e[3]).toBe(s.P2.NONE)}),it("should include encoded derivation path in data",()=>{const e=new n.VerifyAddressCommand({derivationPath:d}).getApdu().getRawApdu();expect(e[5]).toBe(5),expect(e.length).toBe(26)}),it("should use FULL_PATH P1 (0x02)",()=>{const e=new n.VerifyAddressCommand({derivationPath:d}).getApdu().getRawApdu();expect(e[2]).toBe(2)})}),describe("parseResponse",()=>{it("should return success on 0x9000 (user approved)",()=>{const t=new n.VerifyAddressCommand({derivationPath:d}),e=new r.ApduResponse({statusCode:new Uint8Array([144,0]),data:new Uint8Array([])}),o=t.parseResponse(e);expect((0,r.isSuccessCommandResult)(o)).toBe(!0)}),it("should return ConcordiumAppCommandError on user rejection",()=>{const t=new n.VerifyAddressCommand({derivationPath:d}),e=new r.ApduResponse({statusCode:new Uint8Array([105,133]),data:new Uint8Array([])}),o=t.parseResponse(e);if(expect((0,r.isSuccessCommandResult)(o)).toBe(!1),!(0,r.isSuccessCommandResult)(o)){const a=o.error;expect(a.errorCode).toBe(c.ConcordiumErrorCodes.USER_REJECTED)}}),it("should return ConcordiumAppCommandError on trusted name mismatch",()=>{const t=new n.VerifyAddressCommand({derivationPath:d}),e=new r.ApduResponse({statusCode:new Uint8Array([107,12]),data:new Uint8Array([])}),o=t.parseResponse(e);if(expect((0,r.isSuccessCommandResult)(o)).toBe(!1),!(0,r.isSuccessCommandResult)(o)){const a=o.error;expect(a.errorCode).toBe(c.ConcordiumErrorCodes.TRUSTED_NAME_MISMATCH)}}),it("should return ConcordiumAppCommandError on INS not supported",()=>{const t=new n.VerifyAddressCommand({derivationPath:d}),e=new r.ApduResponse({statusCode:new Uint8Array([109,0]),data:new Uint8Array([])}),o=t.parseResponse(e);if(expect((0,r.isSuccessCommandResult)(o)).toBe(!1),!(0,r.isSuccessCommandResult)(o)){const a=o.error;expect(a.errorCode).toBe(c.ConcordiumErrorCodes.INS_NOT_SUPPORTED)}})})});
|
|
2
|
+
//# sourceMappingURL=VerifyAddressCommand.test.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/internal/app-binder/command/VerifyAddressCommand.test.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n ApduResponse,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport {\n type ConcordiumAppCommandError,\n ConcordiumErrorCodes,\n} from \"@internal/app-binder/command/utils/ConcordiumApplicationErrors\";\nimport { VerifyAddressCommand } from \"@internal/app-binder/command/VerifyAddressCommand\";\nimport { INS, LEDGER_CLA, P1, P2 } from \"@internal/app-binder/constants\";\n\nconst DERIVATION_PATH = \"44'/919'/0'/0'/0'\";\n\ndescribe(\"VerifyAddressCommand\", () => {\n describe(\"getApdu\", () => {\n it(\"should build APDU with correct header\", () => {\n const command = new VerifyAddressCommand({\n derivationPath: DERIVATION_PATH,\n });\n const raw = command.getApdu().getRawApdu();\n\n expect(raw[0]).toBe(LEDGER_CLA);\n expect(raw[1]).toBe(INS.VERIFY_ADDRESS);\n expect(raw[2]).toBe(P1.FULL_PATH);\n expect(raw[3]).toBe(P2.NONE);\n });\n\n it(\"should include encoded derivation path in data\", () => {\n const command = new VerifyAddressCommand({\n derivationPath: DERIVATION_PATH,\n });\n const raw = command.getApdu().getRawApdu();\n\n // Data starts at byte 5; first byte is path length (5)\n expect(raw[5]).toBe(5);\n // Total data: 1 (length) + 5*4 (path elements) = 21 bytes\n expect(raw.length).toBe(5 + 21);\n });\n\n it(\"should use FULL_PATH P1 (0x02)\", () => {\n const command = new VerifyAddressCommand({\n derivationPath: DERIVATION_PATH,\n });\n const raw = command.getApdu().getRawApdu();\n\n expect(raw[2]).toBe(0x02);\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should return success on 0x9000 (user approved)\", () => {\n const command = new VerifyAddressCommand({\n derivationPath: DERIVATION_PATH,\n });\n const response = new ApduResponse({\n statusCode: new Uint8Array([0x90, 0x00]),\n data: new Uint8Array([]),\n });\n\n const result = command.parseResponse(response);\n\n expect(isSuccessCommandResult(result)).toBe(true);\n });\n\n it(\"should return ConcordiumAppCommandError on user rejection\", () => {\n const command = new VerifyAddressCommand({\n derivationPath: DERIVATION_PATH,\n });\n const response = new ApduResponse({\n statusCode: new Uint8Array([0x69, 0x85]),\n data: new Uint8Array([]),\n });\n\n const result = command.parseResponse(response);\n\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n const err = result.error as ConcordiumAppCommandError;\n expect(err.errorCode).toBe(ConcordiumErrorCodes.USER_REJECTED);\n }\n });\n\n it(\"should return ConcordiumAppCommandError on trusted name mismatch\", () => {\n const command = new VerifyAddressCommand({\n derivationPath: DERIVATION_PATH,\n });\n const response = new ApduResponse({\n statusCode: new Uint8Array([0x6b, 0x0c]),\n data: new Uint8Array([]),\n });\n\n const result = command.parseResponse(response);\n\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n const err = result.error as ConcordiumAppCommandError;\n expect(err.errorCode).toBe(ConcordiumErrorCodes.TRUSTED_NAME_MISMATCH);\n }\n });\n\n it(\"should return ConcordiumAppCommandError on INS not supported\", () => {\n const command = new VerifyAddressCommand({\n derivationPath: DERIVATION_PATH,\n });\n const response = new ApduResponse({\n statusCode: new Uint8Array([0x6d, 0x00]),\n data: new Uint8Array([]),\n });\n\n const result = command.parseResponse(response);\n\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n const err = result.error as ConcordiumAppCommandError;\n expect(err.errorCode).toBe(ConcordiumErrorCodes.INS_NOT_SUPPORTED);\n }\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_device_management_kit", "import_ConcordiumApplicationErrors", "import_VerifyAddressCommand", "import_constants", "DERIVATION_PATH", "raw", "command", "response", "result", "err"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var s=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var E=Object.prototype.hasOwnProperty;var m=(o,r)=>{for(var i in r)s(o,i,{get:r[i],enumerable:!0})},f=(o,r,i,d)=>{if(r&&typeof r=="object"||typeof r=="function")for(let e of n(r))!E.call(o,e)&&e!==i&&s(o,e,{get:()=>r[e],enumerable:!(d=c(r,e))||d.enumerable});return o};var A=o=>f(s({},"__esModule",{value:!0}),o);var g={};m(g,{AddressVerificationFailedError:()=>C});module.exports=A(g);var t=require("@ledgerhq/device-management-kit"),a=require("../../../app-binder/command/utils/ConcordiumApplicationErrors");class C extends t.DeviceExchangeError{constructor(r){super({tag:"AddressVerificationFailedError",message:r??"Address verification failed",errorCode:a.ConcordiumErrorCodes.ADDRESS_VERIFICATION_FAILED})}}0&&(module.exports={AddressVerificationFailedError});
|
|
2
|
+
//# sourceMappingURL=AddressVerificationFailedError.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../src/internal/app-binder/command/utils/AddressVerificationFailedError.ts"],
|
|
4
|
+
"sourcesContent": ["import { DeviceExchangeError } from \"@ledgerhq/device-management-kit\";\n\nimport { ConcordiumErrorCodes } from \"@internal/app-binder/command/utils/ConcordiumApplicationErrors\";\n\n/**\n * Raised when the trusted metadata service was reached but actively refused\n * the pubkey \u2192 address mapping (HTTP 4xx). This is a terminal, non-retryable\n * verification failure: the backend has looked up the mapping and does not\n * recognize it. Distinguished from {@link TrustedMetadataServiceError}, which\n * signals a transient service-side issue (network failure, 5xx, malformed\n * response).\n */\nexport class AddressVerificationFailedError extends DeviceExchangeError<ConcordiumErrorCodes> {\n constructor(message?: string) {\n super({\n tag: \"AddressVerificationFailedError\",\n message: message ?? \"Address verification failed\",\n errorCode: ConcordiumErrorCodes.ADDRESS_VERIFICATION_FAILED,\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAoC,2CAEpCC,EAAqC,0EAU9B,MAAMH,UAAuC,qBAA0C,CAC5F,YAAYI,EAAkB,CAC5B,MAAM,CACJ,IAAK,iCACL,QAASA,GAAW,8BACpB,UAAW,uBAAqB,2BAClC,CAAC,CACH,CACF",
|
|
6
|
+
"names": ["AddressVerificationFailedError_exports", "__export", "AddressVerificationFailedError", "__toCommonJS", "import_device_management_kit", "import_ConcordiumApplicationErrors", "message"]
|
|
7
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var _=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var i=(r,e)=>{for(var t in e)_(r,t,{get:e[t],enumerable:!0})},R=(r,e,t,m)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of E(e))!A.call(r,s)&&s!==t&&_(r,s,{get:()=>e[s],enumerable:!(m=p(e,s))||m.enumerable});return r};var c=r=>R(_({},"__esModule",{value:!0}),r);var g={};i(g,{CONCORDIUM_APP_ERRORS:()=>T,ConcordiumAppCommandError:()=>d,ConcordiumAppCommandErrorFactory:()=>D,ConcordiumErrorCodes:()=>o});module.exports=c(g);var n=require("@ledgerhq/device-management-kit"),o=(a=>(a.USER_REJECTED="6985",a.LOCKED_DEVICE="5515",a.DATA_INVALID="6a80",a.INS_NOT_SUPPORTED="6d00",a.CLA_NOT_SUPPORTED="6e00",a.UNKNOWN_ERROR="6f00",a.TRUSTED_NAME_MISMATCH="6b0c",a.UNSUPPORTED_TRANSACTION_TYPE="unsupported_transaction_type",a.TRUSTED_METADATA_SERVICE_ERROR="trusted_metadata_service_error",a.ADDRESS_VERIFICATION_FAILED="address_verification_failed",a))(o||{});const T={6985:{message:"User rejected"},5515:{message:"Locked device"},"6a80":{message:"Data invalid"},"6d00":{message:"INS not supported"},"6e00":{message:"CLA not supported"},"6f00":{message:"Unknown error"},"6b0c":{message:"Trusted name mismatch"},unsupported_transaction_type:{message:"Unsupported transaction type"},trusted_metadata_service_error:{message:"Trusted metadata service error"},address_verification_failed:{message:"Address verification failed"}};class d extends n.DeviceExchangeError{constructor(e){super({tag:"ConcordiumAppCommandError",...e})}}const D=r=>new d(r);0&&(module.exports={CONCORDIUM_APP_ERRORS,ConcordiumAppCommandError,ConcordiumAppCommandErrorFactory,ConcordiumErrorCodes});
|
|
2
2
|
//# sourceMappingURL=ConcordiumApplicationErrors.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/internal/app-binder/command/utils/ConcordiumApplicationErrors.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type CommandErrorArgs,\n type CommandErrors,\n DeviceExchangeError,\n} from \"@ledgerhq/device-management-kit\";\n\nexport enum ConcordiumErrorCodes {\n USER_REJECTED = \"6985\",\n LOCKED_DEVICE = \"5515\",\n DATA_INVALID = \"6a80\",\n INS_NOT_SUPPORTED = \"6d00\",\n CLA_NOT_SUPPORTED = \"6e00\",\n UNKNOWN_ERROR = \"6f00\",\n UNSUPPORTED_TRANSACTION_TYPE = \"unsupported_transaction_type\",\n}\n\nexport const CONCORDIUM_APP_ERRORS: CommandErrors<ConcordiumErrorCodes> = {\n \"6985\": { message: \"User rejected\" },\n \"5515\": { message: \"Locked device\" },\n \"6a80\": { message: \"Data invalid\" },\n \"6d00\": { message: \"INS not supported\" },\n \"6e00\": { message: \"CLA not supported\" },\n \"6f00\": { message: \"Unknown error\" },\n unsupported_transaction_type: { message: \"Unsupported transaction type\" },\n};\n\nexport class ConcordiumAppCommandError extends DeviceExchangeError<ConcordiumErrorCodes> {\n constructor(args: CommandErrorArgs<ConcordiumErrorCodes>) {\n super({ tag: \"ConcordiumAppCommandError\", ...args });\n }\n}\n\nexport const ConcordiumAppCommandErrorFactory = (\n args: CommandErrorArgs<ConcordiumErrorCodes>,\n) => new ConcordiumAppCommandError(args);\n"],
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,2BAAAE,EAAA,8BAAAC,EAAA,qCAAAC,EAAA,yBAAAC,IAAA,eAAAC,EAAAN,GAAA,IAAAO,EAIO,2CAEKF,OACVA,EAAA,cAAgB,OAChBA,EAAA,cAAgB,OAChBA,EAAA,aAAe,OACfA,EAAA,kBAAoB,OACpBA,EAAA,kBAAoB,OACpBA,EAAA,cAAgB,OAChBA,EAAA,6BAA+B,+
|
|
4
|
+
"sourcesContent": ["import {\n type CommandErrorArgs,\n type CommandErrors,\n DeviceExchangeError,\n} from \"@ledgerhq/device-management-kit\";\n\nexport enum ConcordiumErrorCodes {\n USER_REJECTED = \"6985\",\n LOCKED_DEVICE = \"5515\",\n DATA_INVALID = \"6a80\",\n INS_NOT_SUPPORTED = \"6d00\",\n CLA_NOT_SUPPORTED = \"6e00\",\n UNKNOWN_ERROR = \"6f00\",\n TRUSTED_NAME_MISMATCH = \"6b0c\",\n UNSUPPORTED_TRANSACTION_TYPE = \"unsupported_transaction_type\",\n TRUSTED_METADATA_SERVICE_ERROR = \"trusted_metadata_service_error\",\n ADDRESS_VERIFICATION_FAILED = \"address_verification_failed\",\n}\n\nexport const CONCORDIUM_APP_ERRORS: CommandErrors<ConcordiumErrorCodes> = {\n \"6985\": { message: \"User rejected\" },\n \"5515\": { message: \"Locked device\" },\n \"6a80\": { message: \"Data invalid\" },\n \"6d00\": { message: \"INS not supported\" },\n \"6e00\": { message: \"CLA not supported\" },\n \"6f00\": { message: \"Unknown error\" },\n \"6b0c\": { message: \"Trusted name mismatch\" },\n unsupported_transaction_type: { message: \"Unsupported transaction type\" },\n trusted_metadata_service_error: {\n message: \"Trusted metadata service error\",\n },\n address_verification_failed: {\n message: \"Address verification failed\",\n },\n};\n\nexport class ConcordiumAppCommandError extends DeviceExchangeError<ConcordiumErrorCodes> {\n constructor(args: CommandErrorArgs<ConcordiumErrorCodes>) {\n super({ tag: \"ConcordiumAppCommandError\", ...args });\n }\n}\n\nexport const ConcordiumAppCommandErrorFactory = (\n args: CommandErrorArgs<ConcordiumErrorCodes>,\n) => new ConcordiumAppCommandError(args);\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,2BAAAE,EAAA,8BAAAC,EAAA,qCAAAC,EAAA,yBAAAC,IAAA,eAAAC,EAAAN,GAAA,IAAAO,EAIO,2CAEKF,OACVA,EAAA,cAAgB,OAChBA,EAAA,cAAgB,OAChBA,EAAA,aAAe,OACfA,EAAA,kBAAoB,OACpBA,EAAA,kBAAoB,OACpBA,EAAA,cAAgB,OAChBA,EAAA,sBAAwB,OACxBA,EAAA,6BAA+B,+BAC/BA,EAAA,+BAAiC,iCACjCA,EAAA,4BAA8B,8BAVpBA,OAAA,IAaL,MAAMH,EAA6D,CACxE,KAAQ,CAAE,QAAS,eAAgB,EACnC,KAAQ,CAAE,QAAS,eAAgB,EACnC,OAAQ,CAAE,QAAS,cAAe,EAClC,OAAQ,CAAE,QAAS,mBAAoB,EACvC,OAAQ,CAAE,QAAS,mBAAoB,EACvC,OAAQ,CAAE,QAAS,eAAgB,EACnC,OAAQ,CAAE,QAAS,uBAAwB,EAC3C,6BAA8B,CAAE,QAAS,8BAA+B,EACxE,+BAAgC,CAC9B,QAAS,gCACX,EACA,4BAA6B,CAC3B,QAAS,6BACX,CACF,EAEO,MAAMC,UAAkC,qBAA0C,CACvF,YAAYK,EAA8C,CACxD,MAAM,CAAE,IAAK,4BAA6B,GAAGA,CAAK,CAAC,CACrD,CACF,CAEO,MAAMJ,EACXI,GACG,IAAIL,EAA0BK,CAAI",
|
|
6
6
|
"names": ["ConcordiumApplicationErrors_exports", "__export", "CONCORDIUM_APP_ERRORS", "ConcordiumAppCommandError", "ConcordiumAppCommandErrorFactory", "ConcordiumErrorCodes", "__toCommonJS", "import_device_management_kit", "args"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var s=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var u=(e,r)=>{for(var t in r)s(e,t,{get:r[t],enumerable:!0})},T=(e,r,t,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of i(r))!m.call(e,o)&&o!==t&&s(e,o,{get:()=>r[o],enumerable:!(a=c(r,o))||a.enumerable});return e};var n=e=>T(s({},"__esModule",{value:!0}),e);var R={};u(R,{TrustedMetadataServiceError:()=>C});module.exports=n(R);var d=require("@ledgerhq/device-management-kit"),E=require("../../../app-binder/command/utils/ConcordiumApplicationErrors");class C extends d.DeviceExchangeError{constructor(r){super({tag:"TrustedMetadataServiceError",message:r??"Trusted metadata service error",errorCode:E.ConcordiumErrorCodes.TRUSTED_METADATA_SERVICE_ERROR})}}0&&(module.exports={TrustedMetadataServiceError});
|
|
2
|
+
//# sourceMappingURL=TrustedMetadataServiceError.js.map
|