@ledgerhq/device-signer-kit-ethereum 0.0.0-wrong-error-when-in-experimental-provider-20251021162636 → 0.0.0-z-intent-queue-7-20251204111630
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/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js +1 -1
- package/lib/cjs/api/app-binder/SignTransactionDeviceActionTypes.js.map +2 -2
- package/lib/cjs/api/app-binder/SignTypedDataDeviceActionTypes.js +1 -1
- package/lib/cjs/api/app-binder/SignTypedDataDeviceActionTypes.js.map +2 -2
- package/lib/cjs/internal/app-binder/EthAppBinder.test.js +1 -1
- package/lib/cjs/internal/app-binder/EthAppBinder.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/GetAddressCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/GetAddressCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/GetAddressCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/GetAddressCommand.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/GetAppConfigurationCommand.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/GetChallengeCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/GetChallengeCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/GetChallengeCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/GetChallengeCommand.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/ProvideEnumCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/ProvideEnumCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/ProvideEnumCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/ProvideEnumCommand.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/ProvideNFTInformationCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/ProvideNFTInformationCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/ProvideNFTInformationCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/ProvideNFTInformationCommand.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/ProvideNetworkConfigurationCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/ProvideNetworkConfigurationCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/ProvideNetworkConfigurationCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/ProvideNetworkConfigurationCommand.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/ProvideProxyInfoCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/ProvideProxyInfoCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/ProvideProxyInfoCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/ProvideProxyInfoCommand.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/ProvideSafeAccountCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/ProvideSafeAccountCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/ProvideSafeAccountCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/ProvideSafeAccountCommand.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/ProvideTokenInformationCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/ProvideTokenInformationCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/ProvideTokenInformationCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/ProvideTokenInformationCommand.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/ProvideTransactionFieldDescriptionCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/ProvideTransactionFieldDescriptionCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/ProvideTransactionFieldDescriptionCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/ProvideTransactionFieldDescriptionCommand.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/ProvideTransactionInformationCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/ProvideTransactionInformationCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/ProvideTransactionInformationCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/ProvideTransactionInformationCommand.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/ProvideTrustedNameCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/ProvideTrustedNameCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/ProvideTrustedNameCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/ProvideTrustedNameCommand.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/ProvideWeb3CheckCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/ProvideWeb3CheckCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/ProvideWeb3CheckCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/ProvideWeb3CheckCommand.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/SendEIP712FilteringCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/SendEIP712FilteringCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/SendEIP712FilteringCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/SendEIP712FilteringCommand.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/SendEIP712StructDefinitionCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/SendEIP712StructDefinitionCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/SendEIP712StructDefinitionCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/SendEIP712StructDefinitionCommand.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/SendEIP712StructImplemCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/SendEIP712StructImplemCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/SendEIP712StructImplemCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/SendEIP712StructImplemCommand.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/SetExternalPluginCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/SetExternalPluginCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/SetExternalPluginCommand.test.js +2 -2
- package/lib/cjs/internal/app-binder/command/SetExternalPluginCommand.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/SetPluginCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/SetPluginCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/SetPluginCommand.test.js +2 -2
- package/lib/cjs/internal/app-binder/command/SetPluginCommand.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/SignAuthorizationDelegationCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/SignAuthorizationDelegationCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/SignAuthorizationDelegationCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/SignAuthorizationDelegationCommand.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/SignEIP712Command.js +1 -1
- package/lib/cjs/internal/app-binder/command/SignEIP712Command.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/SignEIP712Command.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/SignEIP712Command.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/SignPersonalMessageCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/SignPersonalMessageCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/SignPersonalMessageCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/SignPersonalMessageCommand.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/SignTransactionCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/SignTransactionCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/SignTransactionCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/SignTransactionCommand.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/StartTransactionCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/StartTransactionCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/StartTransactionCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/StartTransactionCommand.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/StoreTransactionCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/StoreTransactionCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/StoreTransactionCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/StoreTransactionCommand.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/command/Web3CheckOptInCommand.js +1 -1
- package/lib/cjs/internal/app-binder/command/Web3CheckOptInCommand.js.map +2 -2
- package/lib/cjs/internal/app-binder/command/Web3CheckOptInCommand.test.js +1 -1
- package/lib/cjs/internal/app-binder/command/Web3CheckOptInCommand.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js.map +3 -3
- package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js.map +3 -3
- package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +1 -1
- package/lib/cjs/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/BuildBaseContexts.js +1 -1
- package/lib/cjs/internal/app-binder/task/BuildBaseContexts.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/BuildBaseContexts.test.js +1 -1
- package/lib/cjs/internal/app-binder/task/BuildBaseContexts.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.js +1 -1
- package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.test.js +1 -1
- package/lib/cjs/internal/app-binder/task/BuildEIP712ContextTask.test.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/BuildSafeAddressContextTask.test.js +1 -1
- package/lib/cjs/internal/app-binder/task/BuildSafeAddressContextTask.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/task/BuildSubcontextsTask.js +1 -1
- package/lib/cjs/internal/app-binder/task/BuildSubcontextsTask.js.map +2 -2
- package/lib/cjs/internal/app-binder/task/BuildSubcontextsTask.test.js +1 -1
- package/lib/cjs/internal/app-binder/task/BuildSubcontextsTask.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/task/ProvideContextTask.js +1 -1
- package/lib/cjs/internal/app-binder/task/ProvideContextTask.js.map +2 -2
- package/lib/cjs/internal/app-binder/task/ProvideContextTask.test.js +1 -1
- package/lib/cjs/internal/app-binder/task/ProvideContextTask.test.js.map +2 -2
- package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.js +1 -1
- package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.js.map +3 -3
- package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.test.js +1 -1
- package/lib/cjs/internal/app-binder/task/ProvideEIP712ContextTask.test.js.map +3 -3
- package/lib/cjs/package.json +42 -38
- package/lib/esm/api/app-binder/SignTransactionDeviceActionTypes.js +1 -1
- package/lib/esm/api/app-binder/SignTransactionDeviceActionTypes.js.map +2 -2
- package/lib/esm/api/app-binder/SignTypedDataDeviceActionTypes.js +1 -1
- package/lib/esm/api/app-binder/SignTypedDataDeviceActionTypes.js.map +2 -2
- package/lib/esm/internal/app-binder/EthAppBinder.test.js +1 -1
- package/lib/esm/internal/app-binder/EthAppBinder.test.js.map +2 -2
- package/lib/esm/internal/app-binder/command/GetAddressCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/GetAddressCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/GetAddressCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/GetAddressCommand.test.js.map +2 -2
- package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/GetAppConfigurationCommand.test.js.map +2 -2
- package/lib/esm/internal/app-binder/command/GetChallengeCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/GetChallengeCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/GetChallengeCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/GetChallengeCommand.test.js.map +2 -2
- package/lib/esm/internal/app-binder/command/ProvideEnumCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/ProvideEnumCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/ProvideEnumCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/ProvideEnumCommand.test.js.map +3 -3
- package/lib/esm/internal/app-binder/command/ProvideNFTInformationCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/ProvideNFTInformationCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/ProvideNFTInformationCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/ProvideNFTInformationCommand.test.js.map +3 -3
- package/lib/esm/internal/app-binder/command/ProvideNetworkConfigurationCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/ProvideNetworkConfigurationCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/ProvideNetworkConfigurationCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/ProvideNetworkConfigurationCommand.test.js.map +3 -3
- package/lib/esm/internal/app-binder/command/ProvideProxyInfoCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/ProvideProxyInfoCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/ProvideProxyInfoCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/ProvideProxyInfoCommand.test.js.map +3 -3
- package/lib/esm/internal/app-binder/command/ProvideSafeAccountCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/ProvideSafeAccountCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/ProvideSafeAccountCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/ProvideSafeAccountCommand.test.js.map +3 -3
- package/lib/esm/internal/app-binder/command/ProvideTokenInformationCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/ProvideTokenInformationCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/ProvideTokenInformationCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/ProvideTokenInformationCommand.test.js.map +2 -2
- package/lib/esm/internal/app-binder/command/ProvideTransactionFieldDescriptionCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/ProvideTransactionFieldDescriptionCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/ProvideTransactionFieldDescriptionCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/ProvideTransactionFieldDescriptionCommand.test.js.map +3 -3
- package/lib/esm/internal/app-binder/command/ProvideTransactionInformationCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/ProvideTransactionInformationCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/ProvideTransactionInformationCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/ProvideTransactionInformationCommand.test.js.map +3 -3
- package/lib/esm/internal/app-binder/command/ProvideTrustedNameCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/ProvideTrustedNameCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/ProvideTrustedNameCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/ProvideTrustedNameCommand.test.js.map +3 -3
- package/lib/esm/internal/app-binder/command/ProvideWeb3CheckCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/ProvideWeb3CheckCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/ProvideWeb3CheckCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/ProvideWeb3CheckCommand.test.js.map +3 -3
- package/lib/esm/internal/app-binder/command/SendEIP712FilteringCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/SendEIP712FilteringCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/SendEIP712FilteringCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/SendEIP712FilteringCommand.test.js.map +3 -3
- package/lib/esm/internal/app-binder/command/SendEIP712StructDefinitionCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/SendEIP712StructDefinitionCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/SendEIP712StructDefinitionCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/SendEIP712StructDefinitionCommand.test.js.map +3 -3
- package/lib/esm/internal/app-binder/command/SendEIP712StructImplemCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/SendEIP712StructImplemCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/SendEIP712StructImplemCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/SendEIP712StructImplemCommand.test.js.map +3 -3
- package/lib/esm/internal/app-binder/command/SetExternalPluginCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/SetExternalPluginCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/SetExternalPluginCommand.test.js +2 -2
- package/lib/esm/internal/app-binder/command/SetExternalPluginCommand.test.js.map +3 -3
- package/lib/esm/internal/app-binder/command/SetPluginCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/SetPluginCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/SetPluginCommand.test.js +2 -2
- package/lib/esm/internal/app-binder/command/SetPluginCommand.test.js.map +3 -3
- package/lib/esm/internal/app-binder/command/SignAuthorizationDelegationCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/SignAuthorizationDelegationCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/SignAuthorizationDelegationCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/SignAuthorizationDelegationCommand.test.js.map +3 -3
- package/lib/esm/internal/app-binder/command/SignEIP712Command.js +1 -1
- package/lib/esm/internal/app-binder/command/SignEIP712Command.js.map +2 -2
- package/lib/esm/internal/app-binder/command/SignEIP712Command.test.js +1 -1
- package/lib/esm/internal/app-binder/command/SignEIP712Command.test.js.map +2 -2
- package/lib/esm/internal/app-binder/command/SignPersonalMessageCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/SignPersonalMessageCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/SignPersonalMessageCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/SignPersonalMessageCommand.test.js.map +3 -3
- package/lib/esm/internal/app-binder/command/SignTransactionCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/SignTransactionCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/SignTransactionCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/SignTransactionCommand.test.js.map +3 -3
- package/lib/esm/internal/app-binder/command/StartTransactionCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/StartTransactionCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/StartTransactionCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/StartTransactionCommand.test.js.map +3 -3
- package/lib/esm/internal/app-binder/command/StoreTransactionCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/StoreTransactionCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/StoreTransactionCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/StoreTransactionCommand.test.js.map +3 -3
- package/lib/esm/internal/app-binder/command/Web3CheckOptInCommand.js +1 -1
- package/lib/esm/internal/app-binder/command/Web3CheckOptInCommand.js.map +2 -2
- package/lib/esm/internal/app-binder/command/Web3CheckOptInCommand.test.js +1 -1
- package/lib/esm/internal/app-binder/command/Web3CheckOptInCommand.test.js.map +3 -3
- package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js +1 -1
- package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.js.map +3 -3
- package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js +1 -1
- package/lib/esm/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.test.js.map +3 -3
- package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js +1 -1
- package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.js.map +3 -3
- package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js +1 -1
- package/lib/esm/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.test.js.map +3 -3
- package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js +1 -1
- package/lib/esm/internal/app-binder/device-action/__test-utils__/makeInternalApi.js.map +3 -3
- package/lib/esm/internal/app-binder/task/BuildBaseContexts.js +1 -1
- package/lib/esm/internal/app-binder/task/BuildBaseContexts.js.map +3 -3
- package/lib/esm/internal/app-binder/task/BuildBaseContexts.test.js +1 -1
- package/lib/esm/internal/app-binder/task/BuildBaseContexts.test.js.map +3 -3
- package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.js +1 -1
- package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.js.map +3 -3
- package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.test.js +1 -1
- package/lib/esm/internal/app-binder/task/BuildEIP712ContextTask.test.js.map +3 -3
- package/lib/esm/internal/app-binder/task/BuildSafeAddressContextTask.test.js +1 -1
- package/lib/esm/internal/app-binder/task/BuildSafeAddressContextTask.test.js.map +2 -2
- package/lib/esm/internal/app-binder/task/BuildSubcontextsTask.js +1 -1
- package/lib/esm/internal/app-binder/task/BuildSubcontextsTask.js.map +2 -2
- package/lib/esm/internal/app-binder/task/BuildSubcontextsTask.test.js +1 -1
- package/lib/esm/internal/app-binder/task/BuildSubcontextsTask.test.js.map +2 -2
- package/lib/esm/internal/app-binder/task/ProvideContextTask.js +1 -1
- package/lib/esm/internal/app-binder/task/ProvideContextTask.js.map +2 -2
- package/lib/esm/internal/app-binder/task/ProvideContextTask.test.js +1 -1
- package/lib/esm/internal/app-binder/task/ProvideContextTask.test.js.map +2 -2
- package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.js +1 -1
- package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.js.map +3 -3
- package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.test.js +1 -1
- package/lib/esm/internal/app-binder/task/ProvideEIP712ContextTask.test.js.map +3 -3
- package/lib/esm/package.json +42 -38
- package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts +1 -0
- package/lib/types/api/app-binder/SignTransactionDeviceActionTypes.d.ts.map +1 -1
- package/lib/types/api/app-binder/SignTypedDataDeviceActionTypes.d.ts +2 -0
- package/lib/types/api/app-binder/SignTypedDataDeviceActionTypes.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/GetAddressCommand.d.ts +1 -0
- package/lib/types/internal/app-binder/command/GetAddressCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.d.ts +1 -0
- package/lib/types/internal/app-binder/command/GetAppConfigurationCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/GetChallengeCommand.d.ts +1 -0
- package/lib/types/internal/app-binder/command/GetChallengeCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/ProvideEnumCommand.d.ts +1 -0
- package/lib/types/internal/app-binder/command/ProvideEnumCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/ProvideNFTInformationCommand.d.ts +1 -0
- package/lib/types/internal/app-binder/command/ProvideNFTInformationCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/ProvideNetworkConfigurationCommand.d.ts +1 -0
- package/lib/types/internal/app-binder/command/ProvideNetworkConfigurationCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/ProvideProxyInfoCommand.d.ts +1 -0
- package/lib/types/internal/app-binder/command/ProvideProxyInfoCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/ProvideSafeAccountCommand.d.ts +1 -0
- package/lib/types/internal/app-binder/command/ProvideSafeAccountCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/ProvideTokenInformationCommand.d.ts +1 -0
- package/lib/types/internal/app-binder/command/ProvideTokenInformationCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/ProvideTransactionFieldDescriptionCommand.d.ts +1 -0
- package/lib/types/internal/app-binder/command/ProvideTransactionFieldDescriptionCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/ProvideTransactionInformationCommand.d.ts +1 -0
- package/lib/types/internal/app-binder/command/ProvideTransactionInformationCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/ProvideTrustedNameCommand.d.ts +1 -0
- package/lib/types/internal/app-binder/command/ProvideTrustedNameCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/ProvideWeb3CheckCommand.d.ts +1 -0
- package/lib/types/internal/app-binder/command/ProvideWeb3CheckCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/SendEIP712FilteringCommand.d.ts +1 -0
- package/lib/types/internal/app-binder/command/SendEIP712FilteringCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/SendEIP712StructDefinitionCommand.d.ts +1 -0
- package/lib/types/internal/app-binder/command/SendEIP712StructDefinitionCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/SendEIP712StructImplemCommand.d.ts +1 -0
- package/lib/types/internal/app-binder/command/SendEIP712StructImplemCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/SetExternalPluginCommand.d.ts +1 -0
- package/lib/types/internal/app-binder/command/SetExternalPluginCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/SetPluginCommand.d.ts +1 -0
- package/lib/types/internal/app-binder/command/SetPluginCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/SignAuthorizationDelegationCommand.d.ts +1 -0
- package/lib/types/internal/app-binder/command/SignAuthorizationDelegationCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/SignEIP712Command.d.ts +1 -0
- package/lib/types/internal/app-binder/command/SignEIP712Command.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/SignPersonalMessageCommand.d.ts +1 -0
- package/lib/types/internal/app-binder/command/SignPersonalMessageCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/SignTransactionCommand.d.ts +1 -0
- package/lib/types/internal/app-binder/command/SignTransactionCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/StartTransactionCommand.d.ts +1 -0
- package/lib/types/internal/app-binder/command/StartTransactionCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/StoreTransactionCommand.d.ts +1 -0
- package/lib/types/internal/app-binder/command/StoreTransactionCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/command/Web3CheckOptInCommand.d.ts +1 -0
- package/lib/types/internal/app-binder/command/Web3CheckOptInCommand.d.ts.map +1 -1
- package/lib/types/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.d.ts +4 -0
- package/lib/types/internal/app-binder/device-action/SignTransaction/SignTransactionDeviceAction.d.ts.map +1 -1
- package/lib/types/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.d.ts +5 -0
- package/lib/types/internal/app-binder/device-action/SignTypedData/SignTypedDataDeviceAction.d.ts.map +1 -1
- package/lib/types/internal/app-binder/device-action/__test-utils__/makeInternalApi.d.ts.map +1 -1
- package/lib/types/internal/app-binder/task/BuildBaseContexts.d.ts +1 -5
- package/lib/types/internal/app-binder/task/BuildBaseContexts.d.ts.map +1 -1
- package/lib/types/internal/app-binder/task/BuildEIP712ContextTask.d.ts +3 -3
- package/lib/types/internal/app-binder/task/BuildEIP712ContextTask.d.ts.map +1 -1
- package/lib/types/internal/app-binder/task/ProvideEIP712ContextTask.d.ts +2 -2
- package/lib/types/internal/app-binder/task/ProvideEIP712ContextTask.d.ts.map +1 -1
- package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
- package/package.json +38 -34
- package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.js +0 -2
- package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.js.map +0 -7
- package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.test.js +0 -2
- package/lib/cjs/internal/app-binder/task/GetWeb3CheckTask.test.js.map +0 -7
- package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.js +0 -2
- package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.js.map +0 -7
- package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.test.js +0 -2
- package/lib/esm/internal/app-binder/task/GetWeb3CheckTask.test.js.map +0 -7
- package/lib/types/internal/app-binder/task/GetWeb3CheckTask.d.ts +0 -29
- package/lib/types/internal/app-binder/task/GetWeb3CheckTask.d.ts.map +0 -1
- package/lib/types/internal/app-binder/task/GetWeb3CheckTask.test.d.ts +0 -2
- package/lib/types/internal/app-binder/task/GetWeb3CheckTask.test.d.ts.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var o=require("@ledgerhq/device-management-kit"),n=require("purify-ts"),r=require("../../typed-data/model/Types"),
|
|
1
|
+
"use strict";var o=require("@ledgerhq/device-management-kit"),n=require("purify-ts"),r=require("../../typed-data/model/Types"),t=require("./SendEIP712StructDefinitionCommand");const d=Uint8Array.from([224,26,0,0,12,69,73,80,55,49,50,68,111,109,97,105,110]),s=Uint8Array.from([224,26,0,0,5,71,114,111,117,112]),i=Uint8Array.from([224,26,0,255,6,5,4,110,97,109,101]),u=Uint8Array.from([224,26,0,255,9,5,7,118,101,114,115,105,111,110]),p=Uint8Array.from([224,26,0,255,10,66,32,7,99,104,97,105,110,73,100]),c=Uint8Array.from([224,26,0,255,19,3,17,118,101,114,105,102,121,105,110,103,67,111,110,116,114,97,99,116]),m=Uint8Array.from([224,26,0,255,18,128,6,80,101,114,115,111,110,1,0,7,109,101,109,98,101,114,115]),f=Uint8Array.from([224,26,0,255,13,0,6,80,101,114,115,111,110,4,102,114,111,109]),E=Uint8Array.from([224,26,0,255,11,131,1,0,7,119,97,108,108,101,116,115]),A=Uint8Array.from([224,26,0,255,17,7,15,115,116,97,116,105,99,69,120,116,114,97,100,97,116,97]),y=Uint8Array.from([224,26,0,255,20,7,18,114,101,112,108,97,99,101,109,101,110,116,80,97,116,116,101,114,110]),l=Uint8Array.from([224,26,0,255,11,70,4,8,100,97,116,97,84,121,112,101]),_=Uint8Array.from([224,26,0,255,14,133,2,1,3,0,8,100,111,99,117,109,101,110,116]),w=Uint8Array.from([224,26,0,255,14,194,1,4,0,0,0,0,6,100,101,112,116,104,121]);describe("SendEIP712StructDefinitionCommand",()=>{let x;describe("name",()=>{it("should be 'sendEIP712StructDefinition'",()=>{const e=new t.SendEIP712StructDefinitionCommand({command:t.StructDefinitionCommand.Name,name:"test"});expect(e.name).toBe("sendEIP712StructDefinition")})}),describe("getApdu",()=>{it("should return the apdu for 'EIP712Domain' name definition",()=>{x=new t.SendEIP712StructDefinitionCommand({command:t.StructDefinitionCommand.Name,name:"EIP712Domain"});const e=x.getApdu();expect(e.getRawApdu()).toStrictEqual(d)}),it("should return the apdu for 'Group' name definition",()=>{x=new t.SendEIP712StructDefinitionCommand({command:t.StructDefinitionCommand.Name,name:"Group"});const e=x.getApdu();expect(e.getRawApdu()).toStrictEqual(s)}),it("should return the apdu for 'name' of type 'string'",()=>{x=new t.SendEIP712StructDefinitionCommand({command:t.StructDefinitionCommand.Field,name:"name",type:new r.PrimitiveType("string","string",n.Nothing)});const e=x.getApdu();expect(e.getRawApdu()).toStrictEqual(i)}),it("should return the apdu for 'version' of type 'string'",()=>{x=new t.SendEIP712StructDefinitionCommand({command:t.StructDefinitionCommand.Field,name:"version",type:new r.PrimitiveType("string","string",n.Nothing)});const e=x.getApdu();expect(e.getRawApdu()).toStrictEqual(u)}),it("should return the apdu for 'chainId' of type 'uint256'",()=>{x=new t.SendEIP712StructDefinitionCommand({command:t.StructDefinitionCommand.Field,name:"chainId",type:new r.PrimitiveType("uint256","uint",(0,n.Just)(32))});const e=x.getApdu();expect(e.getRawApdu()).toStrictEqual(p)}),it("should return the apdu for 'verifyingContract' of type 'address'",()=>{x=new t.SendEIP712StructDefinitionCommand({command:t.StructDefinitionCommand.Field,name:"verifyingContract",type:new r.PrimitiveType("address","address",n.Nothing)});const e=x.getApdu();expect(e.getRawApdu()).toStrictEqual(c)}),it("should return the apdu for 'members' of type 'Person[]'",()=>{x=new t.SendEIP712StructDefinitionCommand({command:t.StructDefinitionCommand.Field,name:"members",type:new r.ArrayType("Person[]",new r.StructType("Person"),"Person",n.Nothing,[n.Nothing])});const e=x.getApdu();expect(e.getRawApdu()).toStrictEqual(m)}),it("should return the apdu for 'from' of type 'Person'",()=>{x=new t.SendEIP712StructDefinitionCommand({command:t.StructDefinitionCommand.Field,name:"from",type:new r.StructType("Person")});const e=x.getApdu();expect(e.getRawApdu()).toStrictEqual(f)}),it("should return the apdu for 'wallets' of type 'address[]'",()=>{x=new t.SendEIP712StructDefinitionCommand({command:t.StructDefinitionCommand.Field,name:"wallets",type:new r.ArrayType("address[]",new r.PrimitiveType("address","address",n.Nothing),"address",n.Nothing,[n.Nothing])});const e=x.getApdu();expect(e.getRawApdu()).toStrictEqual(E)}),it("should return the apdu for 'staticExtradata' of type 'bytes'",()=>{x=new t.SendEIP712StructDefinitionCommand({command:t.StructDefinitionCommand.Field,name:"staticExtradata",type:new r.PrimitiveType("bytes","bytes",n.Nothing)});const e=x.getApdu();expect(e.getRawApdu()).toStrictEqual(A)}),it("should return the apdu for 'replacementPattern' of type 'bytes'",()=>{x=new t.SendEIP712StructDefinitionCommand({command:t.StructDefinitionCommand.Field,name:"replacementPattern",type:new r.PrimitiveType("bytes","bytes",n.Nothing)});const e=x.getApdu();expect(e.getRawApdu()).toStrictEqual(y)}),it("should return the apdu for 'dataType' of type 'bytes4'",()=>{x=new t.SendEIP712StructDefinitionCommand({command:t.StructDefinitionCommand.Field,name:"dataType",type:new r.PrimitiveType("bytes4","bytes",(0,n.Just)(4))});const e=x.getApdu();expect(e.getRawApdu()).toStrictEqual(l)}),it("should return the apdu for 'document' of type 'string[3][]'",()=>{x=new t.SendEIP712StructDefinitionCommand({command:t.StructDefinitionCommand.Field,name:"document",type:new r.ArrayType("string[3][]",new r.PrimitiveType("string","string",n.Nothing),"string[3]",n.Nothing,[(0,n.Just)(3),n.Nothing])});const e=x.getApdu();expect(e.getRawApdu()).toStrictEqual(_)}),it("should return the apdu for 'depthy' of type 'uint8[][][][]'",()=>{x=new t.SendEIP712StructDefinitionCommand({command:t.StructDefinitionCommand.Field,name:"depthy",type:new r.ArrayType("uint8[][][][]",new r.PrimitiveType("uint8","uint",(0,n.Just)(1)),"uint8[][][]",n.Nothing,[n.Nothing,n.Nothing,n.Nothing,n.Nothing])});const e=x.getApdu();expect(e.getRawApdu()).toStrictEqual(w)})}),describe("parseResponse",()=>{it("should parse the response",()=>{const e={statusCode:Uint8Array.from([144,0]),data:new Uint8Array},a=x.parseResponse(e);expect(a).toStrictEqual((0,o.CommandResultFactory)({data:void 0}))}),it("should throw an error if the response is not successful",()=>{const e={statusCode:Uint8Array.from([85,21]),data:new Uint8Array},a=x.parseResponse(e);expect((0,o.isSuccessCommandResult)(a)).toBe(!1)})})});
|
|
2
2
|
//# sourceMappingURL=SendEIP712StructDefinitionCommand.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/command/SendEIP712StructDefinitionCommand.test.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type Command,\n CommandResultFactory,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { Just, Nothing } from \"purify-ts\";\n\nimport {\n ArrayType,\n PrimitiveType,\n StructType,\n} from \"@internal/typed-data/model/Types\";\n\nimport { type EthErrorCodes } from \"./utils/ethAppErrors\";\nimport {\n SendEIP712StructDefinitionCommand,\n type SendEIP712StructDefinitionCommandArgs,\n StructDefinitionCommand,\n} from \"./SendEIP712StructDefinitionCommand\";\n\nconst EIP712_DEF_NAME_EIP712DOMAIN = Uint8Array.from([\n 0xe0, 0x1a, 0x00, 0x00, 0x0c, 0x45, 0x49, 0x50, 0x37, 0x31, 0x32, 0x44, 0x6f,\n 0x6d, 0x61, 0x69, 0x6e,\n]);\n\nconst EIP712_DEF_NAME_GROUP = Uint8Array.from([\n 0xe0, 0x1a, 0x00, 0x00, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70,\n]);\n\n// name string\nconst EIP712_DEF_FIELD_NAME_STRING = Uint8Array.from([\n 0xe0, 0x1a, 0x00, 0xff, 0x06, 0x05, 0x04, 0x6e, 0x61, 0x6d, 0x65,\n]);\n\n// version string\nconst EIP712_DEF_FIELD_VERSION_STRING = Uint8Array.from([\n 0xe0, 0x1a, 0x00, 0xff, 0x09, 0x05, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,\n 0x6e,\n]);\n\n// chainId uint256\nconst EIP712_DEF_FIELD_CHAINID_UINT256 = Uint8Array.from([\n 0xe0, 0x1a, 0x00, 0xff, 0x0a, 0x42, 0x20, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e,\n 0x49, 0x64,\n]);\n\n// verifyingContract address\nconst EIP712_DEF_FIELD_VERIFYINGCONTRACT_ADDRESS = Uint8Array.from([\n 0xe0, 0x1a, 0x00, 0xff, 0x13, 0x03, 0x11, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79,\n 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74,\n]);\n\n// members Person[]\nconst EIP712_DEF_FIELD_MEMBERS_PERSON = Uint8Array.from([\n 0xe0, 0x1a, 0x00, 0xff, 0x12, 0x80, 0x06, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e,\n 0x01, 0x00, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73,\n]);\n\n// from Person\nconst EIP712_DEF_FIELD_FROM_PERSON = Uint8Array.from([\n 0xe0, 0x1a, 0x00, 0xff, 0x0d, 0x00, 0x06, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e,\n 0x04, 0x66, 0x72, 0x6f, 0x6d,\n]);\n\n// wallets address[]\nconst EIP712_DEF_FIELD_WALLETS_ADDRESS = Uint8Array.from([\n 0xe0, 0x1a, 0x00, 0xff, 0x0b, 0x83, 0x01, 0x00, 0x07, 0x77, 0x61, 0x6c, 0x6c,\n 0x65, 0x74, 0x73,\n]);\n\n// staticExtradata bytes\nconst EIP712_DEF_FIELD_STATICEXTRADATA_BYTES = Uint8Array.from([\n 0xe0, 0x1a, 0x00, 0xff, 0x11, 0x07, 0x0f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63,\n 0x45, 0x78, 0x74, 0x72, 0x61, 0x64, 0x61, 0x74, 0x61,\n]);\n\n// replacementPattern bytes\nconst EIP712_DEF_FIELD_REPLACEMENTPATTERN_BYTES = Uint8Array.from([\n 0xe0, 0x1a, 0x00, 0xff, 0x14, 0x07, 0x12, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63,\n 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e,\n]);\n\n// dataType bytes4\nconst EIP712_DEF_FIELD_DATA_TYPE_BYTES4 = Uint8Array.from([\n 0xe0, 0x1a, 0x00, 0xff, 0x0b, 0x46, 0x04, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54,\n 0x79, 0x70, 0x65,\n]);\n\n// document string[3][]\nconst EIP712_DEF_FIELD_DOCUMENT_STRING = Uint8Array.from([\n 0xe0, 0x1a, 0x00, 0xff, 0x0e, 0x85, 0x02, 0x01, 0x03, 0x00, 0x08, 0x64, 0x6f,\n 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,\n]);\n\n// depthy uint8[][][][]\nconst EIP712_DEF_FIELD_DEPTHY_UINT8 = Uint8Array.from([\n 0xe0, 0x1a, 0x00, 0xff, 0x0e, 0xc2, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x06,\n 0x64, 0x65, 0x70, 0x74, 0x68, 0x79,\n]);\n\n// TODO: find examples for bool and int types.\n\ndescribe(\"SendEIP712StructDefinitionCommand\", () => {\n let command: Command<\n void,\n SendEIP712StructDefinitionCommandArgs,\n EthErrorCodes\n >;\n\n describe(\"getApdu\", () => {\n it(\"should return the apdu for 'EIP712Domain' name definition\", () => {\n // GIVEN\n command = new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Name,\n name: \"EIP712Domain\",\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(EIP712_DEF_NAME_EIP712DOMAIN);\n });\n\n it(\"should return the apdu for 'Group' name definition\", () => {\n // GIVEN\n command = new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Name,\n name: \"Group\",\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(EIP712_DEF_NAME_GROUP);\n });\n\n it(\"should return the apdu for 'name' of type 'string'\", () => {\n // GIVEN\n command = new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Field,\n name: \"name\",\n type: new PrimitiveType(\"string\", \"string\", Nothing),\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(EIP712_DEF_FIELD_NAME_STRING);\n });\n\n it(\"should return the apdu for 'version' of type 'string'\", () => {\n // GIVEN\n command = new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Field,\n name: \"version\",\n type: new PrimitiveType(\"string\", \"string\", Nothing),\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(EIP712_DEF_FIELD_VERSION_STRING);\n });\n\n it(\"should return the apdu for 'chainId' of type 'uint256'\", () => {\n // GIVEN\n command = new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Field,\n name: \"chainId\",\n type: new PrimitiveType(\"uint256\", \"uint\", Just(32)),\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(EIP712_DEF_FIELD_CHAINID_UINT256);\n });\n\n it(\"should return the apdu for 'verifyingContract' of type 'address'\", () => {\n // GIVEN\n command = new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Field,\n name: \"verifyingContract\",\n type: new PrimitiveType(\"address\", \"address\", Nothing),\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(\n EIP712_DEF_FIELD_VERIFYINGCONTRACT_ADDRESS,\n );\n });\n\n it(\"should return the apdu for 'members' of type 'Person[]'\", () => {\n // GIVEN\n command = new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Field,\n name: \"members\",\n type: new ArrayType(\n \"Person[]\",\n new StructType(\"Person\"),\n \"Person\",\n Nothing,\n [Nothing],\n ),\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(EIP712_DEF_FIELD_MEMBERS_PERSON);\n });\n\n it(\"should return the apdu for 'from' of type 'Person'\", () => {\n // GIVEN\n command = new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Field,\n name: \"from\",\n type: new StructType(\"Person\"),\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(EIP712_DEF_FIELD_FROM_PERSON);\n });\n\n it(\"should return the apdu for 'wallets' of type 'address[]'\", () => {\n // GIVEN\n command = new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Field,\n name: \"wallets\",\n type: new ArrayType(\n \"address[]\",\n new PrimitiveType(\"address\", \"address\", Nothing),\n \"address\",\n Nothing,\n [Nothing],\n ),\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(EIP712_DEF_FIELD_WALLETS_ADDRESS);\n });\n\n it(\"should return the apdu for 'staticExtradata' of type 'bytes'\", () => {\n // GIVEN\n command = new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Field,\n name: \"staticExtradata\",\n type: new PrimitiveType(\"bytes\", \"bytes\", Nothing),\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(\n EIP712_DEF_FIELD_STATICEXTRADATA_BYTES,\n );\n });\n\n it(\"should return the apdu for 'replacementPattern' of type 'bytes'\", () => {\n // GIVEN\n command = new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Field,\n name: \"replacementPattern\",\n type: new PrimitiveType(\"bytes\", \"bytes\", Nothing),\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(\n EIP712_DEF_FIELD_REPLACEMENTPATTERN_BYTES,\n );\n });\n\n it(\"should return the apdu for 'dataType' of type 'bytes4'\", () => {\n // GIVEN\n command = new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Field,\n name: \"dataType\",\n type: new PrimitiveType(\"bytes4\", \"bytes\", Just(4)),\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(\n EIP712_DEF_FIELD_DATA_TYPE_BYTES4,\n );\n });\n\n it(\"should return the apdu for 'document' of type 'string[3][]'\", () => {\n // GIVEN\n command = new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Field,\n name: \"document\",\n type: new ArrayType(\n \"string[3][]\",\n new PrimitiveType(\"string\", \"string\", Nothing),\n \"string[3]\",\n Nothing,\n [Just(3), Nothing],\n ),\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(EIP712_DEF_FIELD_DOCUMENT_STRING);\n });\n\n it(\"should return the apdu for 'depthy' of type 'uint8[][][][]'\", () => {\n // GIVEN\n command = new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Field,\n name: \"depthy\",\n type: new ArrayType(\n \"uint8[][][][]\",\n new PrimitiveType(\"uint8\", \"uint\", Just(1)),\n \"uint8[][][]\",\n Nothing,\n [Nothing, Nothing, Nothing, Nothing],\n ),\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(EIP712_DEF_FIELD_DEPTHY_UINT8);\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should parse the response\", () => {\n // GIVEN\n const response = {\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array(),\n };\n\n // WHEN\n const parsedResponse = command.parseResponse(response);\n\n // THEN\n expect(parsedResponse).toStrictEqual(\n CommandResultFactory({ data: undefined }),\n );\n });\n\n it(\"should throw an error if the response is not successful\", () => {\n // GIVEN\n const response = {\n statusCode: Uint8Array.from([0x55, 0x15]),\n data: new Uint8Array(),\n };\n\n // WHEN\n const result = command.parseResponse(response);\n\n // THEN\n expect(isSuccessCommandResult(result)).toBe(false);\n });\n });\n});\n"],
|
|
5
|
-
"mappings": "aAAA,IAAAA,EAIO,2CACPC,EAA8B,qBAE9BC,EAIO,4CAGPC,EAIO,+CAEP,MAAMC,EAA+B,WAAW,KAAK,CACnD,IAAM,GAAM,EAAM,EAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,IACxE,IAAM,GAAM,IAAM,GACpB,CAAC,EAEKC,EAAwB,WAAW,KAAK,CAC5C,IAAM,GAAM,EAAM,EAAM,EAAM,GAAM,IAAM,IAAM,IAAM,GACxD,CAAC,EAGKC,EAA+B,WAAW,KAAK,CACnD,IAAM,GAAM,EAAM,IAAM,EAAM,EAAM,EAAM,IAAM,GAAM,IAAM,GAC9D,CAAC,EAGKC,EAAkC,WAAW,KAAK,CACtD,IAAM,GAAM,EAAM,IAAM,EAAM,EAAM,EAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IACxE,GACF,CAAC,EAGKC,EAAmC,WAAW,KAAK,CACvD,IAAM,GAAM,EAAM,IAAM,GAAM,GAAM,GAAM,EAAM,GAAM,IAAM,GAAM,IAAM,IACxE,GAAM,GACR,CAAC,EAGKC,EAA6C,WAAW,KAAK,CACjE,IAAM,GAAM,EAAM,IAAM,GAAM,EAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IACxE,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAC9D,CAAC,EAGKC,EAAkC,WAAW,KAAK,CACtD,IAAM,GAAM,EAAM,IAAM,GAAM,IAAM,EAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IACxE,EAAM,EAAM,EAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GACxD,CAAC,EAGKC,EAA+B,WAAW,KAAK,CACnD,IAAM,GAAM,EAAM,IAAM,GAAM,EAAM,EAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IACxE,EAAM,IAAM,IAAM,IAAM,GAC1B,CAAC,EAGKC,EAAmC,WAAW,KAAK,CACvD,IAAM,GAAM,EAAM,IAAM,GAAM,IAAM,EAAM,EAAM,EAAM,IAAM,GAAM,IAAM,IACxE,IAAM,IAAM,GACd,CAAC,EAGKC,EAAyC,WAAW,KAAK,CAC7D,IAAM,GAAM,EAAM,IAAM,GAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GACxE,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,EAClD,CAAC,EAGKC,EAA4C,WAAW,KAAK,CAChE,IAAM,GAAM,EAAM,IAAM,GAAM,EAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GACxE,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GACpE,CAAC,EAGKC,EAAoC,WAAW,KAAK,CACxD,IAAM,GAAM,EAAM,IAAM,GAAM,GAAM,EAAM,EAAM,IAAM,GAAM,IAAM,GAAM,GACxE,IAAM,IAAM,GACd,CAAC,EAGKC,EAAmC,WAAW,KAAK,CACvD,IAAM,GAAM,EAAM,IAAM,GAAM,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,IAAM,IACxE,GAAM,IAAM,IAAM,IAAM,IAAM,GAChC,CAAC,EAGKC,EAAgC,WAAW,KAAK,CACpD,IAAM,GAAM,EAAM,IAAM,GAAM,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EACxE,IAAM,IAAM,IAAM,IAAM,IAAM,GAChC,CAAC,EAID,SAAS,oCAAqC,IAAM,CAClD,IAAIC,EAMJ,SAAS,UAAW,IAAM,CACxB,GAAG,4DAA6D,IAAM,
|
|
6
|
-
"names": ["import_device_management_kit", "import_purify_ts", "import_Types", "import_SendEIP712StructDefinitionCommand", "EIP712_DEF_NAME_EIP712DOMAIN", "EIP712_DEF_NAME_GROUP", "EIP712_DEF_FIELD_NAME_STRING", "EIP712_DEF_FIELD_VERSION_STRING", "EIP712_DEF_FIELD_CHAINID_UINT256", "EIP712_DEF_FIELD_VERIFYINGCONTRACT_ADDRESS", "EIP712_DEF_FIELD_MEMBERS_PERSON", "EIP712_DEF_FIELD_FROM_PERSON", "EIP712_DEF_FIELD_WALLETS_ADDRESS", "EIP712_DEF_FIELD_STATICEXTRADATA_BYTES", "EIP712_DEF_FIELD_REPLACEMENTPATTERN_BYTES", "EIP712_DEF_FIELD_DATA_TYPE_BYTES4", "EIP712_DEF_FIELD_DOCUMENT_STRING", "EIP712_DEF_FIELD_DEPTHY_UINT8", "command", "apdu", "response", "parsedResponse", "result"]
|
|
4
|
+
"sourcesContent": ["import {\n type Command,\n CommandResultFactory,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { Just, Nothing } from \"purify-ts\";\n\nimport {\n ArrayType,\n PrimitiveType,\n StructType,\n} from \"@internal/typed-data/model/Types\";\n\nimport { type EthErrorCodes } from \"./utils/ethAppErrors\";\nimport {\n SendEIP712StructDefinitionCommand,\n type SendEIP712StructDefinitionCommandArgs,\n StructDefinitionCommand,\n} from \"./SendEIP712StructDefinitionCommand\";\n\nconst EIP712_DEF_NAME_EIP712DOMAIN = Uint8Array.from([\n 0xe0, 0x1a, 0x00, 0x00, 0x0c, 0x45, 0x49, 0x50, 0x37, 0x31, 0x32, 0x44, 0x6f,\n 0x6d, 0x61, 0x69, 0x6e,\n]);\n\nconst EIP712_DEF_NAME_GROUP = Uint8Array.from([\n 0xe0, 0x1a, 0x00, 0x00, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70,\n]);\n\n// name string\nconst EIP712_DEF_FIELD_NAME_STRING = Uint8Array.from([\n 0xe0, 0x1a, 0x00, 0xff, 0x06, 0x05, 0x04, 0x6e, 0x61, 0x6d, 0x65,\n]);\n\n// version string\nconst EIP712_DEF_FIELD_VERSION_STRING = Uint8Array.from([\n 0xe0, 0x1a, 0x00, 0xff, 0x09, 0x05, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,\n 0x6e,\n]);\n\n// chainId uint256\nconst EIP712_DEF_FIELD_CHAINID_UINT256 = Uint8Array.from([\n 0xe0, 0x1a, 0x00, 0xff, 0x0a, 0x42, 0x20, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e,\n 0x49, 0x64,\n]);\n\n// verifyingContract address\nconst EIP712_DEF_FIELD_VERIFYINGCONTRACT_ADDRESS = Uint8Array.from([\n 0xe0, 0x1a, 0x00, 0xff, 0x13, 0x03, 0x11, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79,\n 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74,\n]);\n\n// members Person[]\nconst EIP712_DEF_FIELD_MEMBERS_PERSON = Uint8Array.from([\n 0xe0, 0x1a, 0x00, 0xff, 0x12, 0x80, 0x06, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e,\n 0x01, 0x00, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73,\n]);\n\n// from Person\nconst EIP712_DEF_FIELD_FROM_PERSON = Uint8Array.from([\n 0xe0, 0x1a, 0x00, 0xff, 0x0d, 0x00, 0x06, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e,\n 0x04, 0x66, 0x72, 0x6f, 0x6d,\n]);\n\n// wallets address[]\nconst EIP712_DEF_FIELD_WALLETS_ADDRESS = Uint8Array.from([\n 0xe0, 0x1a, 0x00, 0xff, 0x0b, 0x83, 0x01, 0x00, 0x07, 0x77, 0x61, 0x6c, 0x6c,\n 0x65, 0x74, 0x73,\n]);\n\n// staticExtradata bytes\nconst EIP712_DEF_FIELD_STATICEXTRADATA_BYTES = Uint8Array.from([\n 0xe0, 0x1a, 0x00, 0xff, 0x11, 0x07, 0x0f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63,\n 0x45, 0x78, 0x74, 0x72, 0x61, 0x64, 0x61, 0x74, 0x61,\n]);\n\n// replacementPattern bytes\nconst EIP712_DEF_FIELD_REPLACEMENTPATTERN_BYTES = Uint8Array.from([\n 0xe0, 0x1a, 0x00, 0xff, 0x14, 0x07, 0x12, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63,\n 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e,\n]);\n\n// dataType bytes4\nconst EIP712_DEF_FIELD_DATA_TYPE_BYTES4 = Uint8Array.from([\n 0xe0, 0x1a, 0x00, 0xff, 0x0b, 0x46, 0x04, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54,\n 0x79, 0x70, 0x65,\n]);\n\n// document string[3][]\nconst EIP712_DEF_FIELD_DOCUMENT_STRING = Uint8Array.from([\n 0xe0, 0x1a, 0x00, 0xff, 0x0e, 0x85, 0x02, 0x01, 0x03, 0x00, 0x08, 0x64, 0x6f,\n 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,\n]);\n\n// depthy uint8[][][][]\nconst EIP712_DEF_FIELD_DEPTHY_UINT8 = Uint8Array.from([\n 0xe0, 0x1a, 0x00, 0xff, 0x0e, 0xc2, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x06,\n 0x64, 0x65, 0x70, 0x74, 0x68, 0x79,\n]);\n\n// TODO: find examples for bool and int types.\n\ndescribe(\"SendEIP712StructDefinitionCommand\", () => {\n let command: Command<\n void,\n SendEIP712StructDefinitionCommandArgs,\n EthErrorCodes\n >;\n\n describe(\"name\", () => {\n it(\"should be 'sendEIP712StructDefinition'\", () => {\n const cmd = new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Name,\n name: \"test\",\n });\n expect(cmd.name).toBe(\"sendEIP712StructDefinition\");\n });\n });\n\n describe(\"getApdu\", () => {\n it(\"should return the apdu for 'EIP712Domain' name definition\", () => {\n // GIVEN\n command = new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Name,\n name: \"EIP712Domain\",\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(EIP712_DEF_NAME_EIP712DOMAIN);\n });\n\n it(\"should return the apdu for 'Group' name definition\", () => {\n // GIVEN\n command = new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Name,\n name: \"Group\",\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(EIP712_DEF_NAME_GROUP);\n });\n\n it(\"should return the apdu for 'name' of type 'string'\", () => {\n // GIVEN\n command = new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Field,\n name: \"name\",\n type: new PrimitiveType(\"string\", \"string\", Nothing),\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(EIP712_DEF_FIELD_NAME_STRING);\n });\n\n it(\"should return the apdu for 'version' of type 'string'\", () => {\n // GIVEN\n command = new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Field,\n name: \"version\",\n type: new PrimitiveType(\"string\", \"string\", Nothing),\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(EIP712_DEF_FIELD_VERSION_STRING);\n });\n\n it(\"should return the apdu for 'chainId' of type 'uint256'\", () => {\n // GIVEN\n command = new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Field,\n name: \"chainId\",\n type: new PrimitiveType(\"uint256\", \"uint\", Just(32)),\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(EIP712_DEF_FIELD_CHAINID_UINT256);\n });\n\n it(\"should return the apdu for 'verifyingContract' of type 'address'\", () => {\n // GIVEN\n command = new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Field,\n name: \"verifyingContract\",\n type: new PrimitiveType(\"address\", \"address\", Nothing),\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(\n EIP712_DEF_FIELD_VERIFYINGCONTRACT_ADDRESS,\n );\n });\n\n it(\"should return the apdu for 'members' of type 'Person[]'\", () => {\n // GIVEN\n command = new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Field,\n name: \"members\",\n type: new ArrayType(\n \"Person[]\",\n new StructType(\"Person\"),\n \"Person\",\n Nothing,\n [Nothing],\n ),\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(EIP712_DEF_FIELD_MEMBERS_PERSON);\n });\n\n it(\"should return the apdu for 'from' of type 'Person'\", () => {\n // GIVEN\n command = new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Field,\n name: \"from\",\n type: new StructType(\"Person\"),\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(EIP712_DEF_FIELD_FROM_PERSON);\n });\n\n it(\"should return the apdu for 'wallets' of type 'address[]'\", () => {\n // GIVEN\n command = new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Field,\n name: \"wallets\",\n type: new ArrayType(\n \"address[]\",\n new PrimitiveType(\"address\", \"address\", Nothing),\n \"address\",\n Nothing,\n [Nothing],\n ),\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(EIP712_DEF_FIELD_WALLETS_ADDRESS);\n });\n\n it(\"should return the apdu for 'staticExtradata' of type 'bytes'\", () => {\n // GIVEN\n command = new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Field,\n name: \"staticExtradata\",\n type: new PrimitiveType(\"bytes\", \"bytes\", Nothing),\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(\n EIP712_DEF_FIELD_STATICEXTRADATA_BYTES,\n );\n });\n\n it(\"should return the apdu for 'replacementPattern' of type 'bytes'\", () => {\n // GIVEN\n command = new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Field,\n name: \"replacementPattern\",\n type: new PrimitiveType(\"bytes\", \"bytes\", Nothing),\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(\n EIP712_DEF_FIELD_REPLACEMENTPATTERN_BYTES,\n );\n });\n\n it(\"should return the apdu for 'dataType' of type 'bytes4'\", () => {\n // GIVEN\n command = new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Field,\n name: \"dataType\",\n type: new PrimitiveType(\"bytes4\", \"bytes\", Just(4)),\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(\n EIP712_DEF_FIELD_DATA_TYPE_BYTES4,\n );\n });\n\n it(\"should return the apdu for 'document' of type 'string[3][]'\", () => {\n // GIVEN\n command = new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Field,\n name: \"document\",\n type: new ArrayType(\n \"string[3][]\",\n new PrimitiveType(\"string\", \"string\", Nothing),\n \"string[3]\",\n Nothing,\n [Just(3), Nothing],\n ),\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(EIP712_DEF_FIELD_DOCUMENT_STRING);\n });\n\n it(\"should return the apdu for 'depthy' of type 'uint8[][][][]'\", () => {\n // GIVEN\n command = new SendEIP712StructDefinitionCommand({\n command: StructDefinitionCommand.Field,\n name: \"depthy\",\n type: new ArrayType(\n \"uint8[][][][]\",\n new PrimitiveType(\"uint8\", \"uint\", Just(1)),\n \"uint8[][][]\",\n Nothing,\n [Nothing, Nothing, Nothing, Nothing],\n ),\n });\n\n // WHEN\n const apdu = command.getApdu();\n\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(EIP712_DEF_FIELD_DEPTHY_UINT8);\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should parse the response\", () => {\n // GIVEN\n const response = {\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: new Uint8Array(),\n };\n\n // WHEN\n const parsedResponse = command.parseResponse(response);\n\n // THEN\n expect(parsedResponse).toStrictEqual(\n CommandResultFactory({ data: undefined }),\n );\n });\n\n it(\"should throw an error if the response is not successful\", () => {\n // GIVEN\n const response = {\n statusCode: Uint8Array.from([0x55, 0x15]),\n data: new Uint8Array(),\n };\n\n // WHEN\n const result = command.parseResponse(response);\n\n // THEN\n expect(isSuccessCommandResult(result)).toBe(false);\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_device_management_kit", "import_purify_ts", "import_Types", "import_SendEIP712StructDefinitionCommand", "EIP712_DEF_NAME_EIP712DOMAIN", "EIP712_DEF_NAME_GROUP", "EIP712_DEF_FIELD_NAME_STRING", "EIP712_DEF_FIELD_VERSION_STRING", "EIP712_DEF_FIELD_CHAINID_UINT256", "EIP712_DEF_FIELD_VERIFYINGCONTRACT_ADDRESS", "EIP712_DEF_FIELD_MEMBERS_PERSON", "EIP712_DEF_FIELD_FROM_PERSON", "EIP712_DEF_FIELD_WALLETS_ADDRESS", "EIP712_DEF_FIELD_STATICEXTRADATA_BYTES", "EIP712_DEF_FIELD_REPLACEMENTPATTERN_BYTES", "EIP712_DEF_FIELD_DATA_TYPE_BYTES4", "EIP712_DEF_FIELD_DOCUMENT_STRING", "EIP712_DEF_FIELD_DEPTHY_UINT8", "command", "cmd", "apdu", "response", "parsedResponse", "result"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var p=Object.defineProperty;var
|
|
1
|
+
"use strict";var p=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var E=(t,e)=>{for(var d in e)p(t,d,{get:e[d],enumerable:!0})},y=(t,e,d,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of i(e))!A.call(t,o)&&o!==d&&p(t,o,{get:()=>e[o],enumerable:!(r=l(e,o))||r.enumerable});return t};var c=t=>y(p({},"__esModule",{value:!0}),t);var R={};E(R,{SendEIP712StructImplemCommand:()=>g,StructImplemType:()=>u});module.exports=c(R);var a=require("@ledgerhq/device-management-kit"),m=require("@ledgerhq/signer-utils"),n=require("purify-ts"),s=require("./utils/ethAppErrors"),u=(r=>(r[r.ROOT=0]="ROOT",r[r.ARRAY=15]="ARRAY",r[r.FIELD=255]="FIELD",r))(u||{});class g{constructor(e){this.args=e}name="sendEIP712StructImplem";errorHelper=new m.CommandErrorHelper(s.ETH_APP_ERRORS,s.EthAppCommandErrorFactory);getApdu(){const e={cla:224,ins:28,p1:this.args.type!=255||this.args.value.isLastChunk?0:1,p2:this.args.type};switch(this.args.type){case 0:return new a.ApduBuilder(e).addAsciiStringToData(this.args.value).build();case 15:return new a.ApduBuilder(e).add8BitUIntToData(this.args.value).build();case 255:return new a.ApduBuilder(e).addBufferToData(this.args.value.data).build()}}parseResponse(e){return n.Maybe.fromNullable(this.errorHelper.getError(e)).orDefault((0,a.CommandResultFactory)({data:void 0}))}}0&&(module.exports={SendEIP712StructImplemCommand,StructImplemType});
|
|
2
2
|
//# sourceMappingURL=SendEIP712StructImplemCommand.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/command/SendEIP712StructImplemCommand.ts"],
|
|
4
|
-
"sourcesContent": ["// https://github.com/LedgerHQ/app-ethereum/blob/develop/doc/ethapp.adoc#eip712-send-struct-implementation\nimport {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\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 ETH_APP_ERRORS,\n EthAppCommandErrorFactory,\n type EthErrorCodes,\n} from \"./utils/ethAppErrors\";\n\nexport enum StructImplemType {\n ROOT = 0x00,\n ARRAY = 0x0f,\n FIELD = 0xff,\n}\n\nexport type SendEIP712StructImplemCommandArgs =\n | {\n type: StructImplemType.ROOT;\n value: string;\n }\n | {\n type: StructImplemType.ARRAY;\n value: number;\n }\n | {\n type: StructImplemType.FIELD;\n value: {\n /**\n * The chunk of the data that is ready to send, that is to say, prefixed by its length in two bytes.\n * Eg. 01020304 => [0x00, 0x04, 0x01, 0x02, 0x03, 0x04] where [0x00, 0x04] are the length of the data.\n */\n data: Uint8Array;\n isLastChunk: boolean;\n };\n };\n\nexport class SendEIP712StructImplemCommand\n implements Command<void, SendEIP712StructImplemCommandArgs, EthErrorCodes>\n{\n private readonly errorHelper = new CommandErrorHelper<void, EthErrorCodes>(\n ETH_APP_ERRORS,\n EthAppCommandErrorFactory,\n );\n constructor(private readonly args: SendEIP712StructImplemCommandArgs) {}\n\n getApdu(): Apdu {\n const apduBuilderArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x1c,\n p1:\n this.args.type != StructImplemType.FIELD || this.args.value.isLastChunk\n ? 0x00\n : 0x01,\n p2: this.args.type,\n };\n switch (this.args.type) {\n case StructImplemType.ROOT:\n return new ApduBuilder(apduBuilderArgs)\n .addAsciiStringToData(this.args.value)\n .build();\n case StructImplemType.ARRAY:\n return new ApduBuilder(apduBuilderArgs)\n .add8BitUIntToData(this.args.value)\n .build();\n case StructImplemType.FIELD:\n return new ApduBuilder(apduBuilderArgs)\n .addBufferToData(this.args.value.data)\n .build();\n }\n }\n\n parseResponse(response: ApduResponse): CommandResult<void, EthErrorCodes> {\n return Maybe.fromNullable(this.errorHelper.getError(response)).orDefault(\n CommandResultFactory({ data: undefined }),\n );\n }\n}\n"],
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mCAAAE,EAAA,qBAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAQO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAEtBC,EAIO,gCAEKL,OACVA,IAAA,KAAO,GAAP,OACAA,IAAA,MAAQ,IAAR,QACAA,IAAA,MAAQ,KAAR,QAHUA,OAAA,IA2BL,MAAMD,CAEb,
|
|
4
|
+
"sourcesContent": ["// https://github.com/LedgerHQ/app-ethereum/blob/develop/doc/ethapp.adoc#eip712-send-struct-implementation\nimport {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\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 ETH_APP_ERRORS,\n EthAppCommandErrorFactory,\n type EthErrorCodes,\n} from \"./utils/ethAppErrors\";\n\nexport enum StructImplemType {\n ROOT = 0x00,\n ARRAY = 0x0f,\n FIELD = 0xff,\n}\n\nexport type SendEIP712StructImplemCommandArgs =\n | {\n type: StructImplemType.ROOT;\n value: string;\n }\n | {\n type: StructImplemType.ARRAY;\n value: number;\n }\n | {\n type: StructImplemType.FIELD;\n value: {\n /**\n * The chunk of the data that is ready to send, that is to say, prefixed by its length in two bytes.\n * Eg. 01020304 => [0x00, 0x04, 0x01, 0x02, 0x03, 0x04] where [0x00, 0x04] are the length of the data.\n */\n data: Uint8Array;\n isLastChunk: boolean;\n };\n };\n\nexport class SendEIP712StructImplemCommand\n implements Command<void, SendEIP712StructImplemCommandArgs, EthErrorCodes>\n{\n readonly name = \"sendEIP712StructImplem\";\n private readonly errorHelper = new CommandErrorHelper<void, EthErrorCodes>(\n ETH_APP_ERRORS,\n EthAppCommandErrorFactory,\n );\n constructor(private readonly args: SendEIP712StructImplemCommandArgs) {}\n\n getApdu(): Apdu {\n const apduBuilderArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x1c,\n p1:\n this.args.type != StructImplemType.FIELD || this.args.value.isLastChunk\n ? 0x00\n : 0x01,\n p2: this.args.type,\n };\n switch (this.args.type) {\n case StructImplemType.ROOT:\n return new ApduBuilder(apduBuilderArgs)\n .addAsciiStringToData(this.args.value)\n .build();\n case StructImplemType.ARRAY:\n return new ApduBuilder(apduBuilderArgs)\n .add8BitUIntToData(this.args.value)\n .build();\n case StructImplemType.FIELD:\n return new ApduBuilder(apduBuilderArgs)\n .addBufferToData(this.args.value.data)\n .build();\n }\n }\n\n parseResponse(response: ApduResponse): CommandResult<void, EthErrorCodes> {\n return Maybe.fromNullable(this.errorHelper.getError(response)).orDefault(\n CommandResultFactory({ data: undefined }),\n );\n }\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mCAAAE,EAAA,qBAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAQO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAEtBC,EAIO,gCAEKL,OACVA,IAAA,KAAO,GAAP,OACAA,IAAA,MAAQ,IAAR,QACAA,IAAA,MAAQ,KAAR,QAHUA,OAAA,IA2BL,MAAMD,CAEb,CAME,YAA6BO,EAAyC,CAAzC,UAAAA,CAA0C,CAL9D,KAAO,yBACC,YAAc,IAAI,qBACjC,iBACA,2BACF,EAGA,SAAgB,CACd,MAAMC,EAAmC,CACvC,IAAK,IACL,IAAK,GACL,GACE,KAAK,KAAK,MAAQ,KAA0B,KAAK,KAAK,MAAM,YACxD,EACA,EACN,GAAI,KAAK,KAAK,IAChB,EACA,OAAQ,KAAK,KAAK,KAAM,CACtB,IAAK,GACH,OAAO,IAAI,cAAYA,CAAe,EACnC,qBAAqB,KAAK,KAAK,KAAK,EACpC,MAAM,EACX,IAAK,IACH,OAAO,IAAI,cAAYA,CAAe,EACnC,kBAAkB,KAAK,KAAK,KAAK,EACjC,MAAM,EACX,IAAK,KACH,OAAO,IAAI,cAAYA,CAAe,EACnC,gBAAgB,KAAK,KAAK,MAAM,IAAI,EACpC,MAAM,CACb,CACF,CAEA,cAAcC,EAA4D,CACxE,OAAO,QAAM,aAAa,KAAK,YAAY,SAASA,CAAQ,CAAC,EAAE,aAC7D,wBAAqB,CAAE,KAAM,MAAU,CAAC,CAC1C,CACF,CACF",
|
|
6
6
|
"names": ["SendEIP712StructImplemCommand_exports", "__export", "SendEIP712StructImplemCommand", "StructImplemType", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_purify_ts", "import_ethAppErrors", "args", "apduBuilderArgs", "response"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var o=require("@ledgerhq/device-management-kit"),e=require("./SendEIP712StructImplemCommand");const s=Uint8Array.from([224,28,0,0,6,108,101,100,103,101,114]),c=Uint8Array.from([224,28,0,15,1,19]),a=Uint8Array.from([224,28,0,255,6,0,4,1,2,3,4]),m=Uint8Array.from([224,28,1,255,5,5,6,7,8,9]);describe("SendEIP712StructImplemCommand",()=>{describe("getApdu",()=>{it("should return the correct APDU for ROOT",()=>{const t={type:e.StructImplemType.ROOT,value:"ledger"},r=new e.SendEIP712StructImplemCommand(t).getApdu();expect(r.getRawApdu()).toStrictEqual(s)}),it("should return the correct APDU for ARRAY",()=>{const t={type:e.StructImplemType.ARRAY,value:19},r=new e.SendEIP712StructImplemCommand(t).getApdu();expect(r.getRawApdu()).toStrictEqual(c)}),it("should return the correct APDU for FIELD when receiving last chunk",()=>{const t={type:e.StructImplemType.FIELD,value:{data:Uint8Array.from([0,4,1,2,3,4]),isLastChunk:!0}},r=new e.SendEIP712StructImplemCommand(t).getApdu();expect(r.getRawApdu()).toStrictEqual(a)}),it("should return the correct APDU for FIELD when receiving other chunk",()=>{const t={type:e.StructImplemType.FIELD,value:{data:Uint8Array.from([5,6,7,8,9]),isLastChunk:!1}},r=new e.SendEIP712StructImplemCommand(t).getApdu();expect(r.getRawApdu()).toStrictEqual(m)})}),describe("parseResponse",()=>{it("should return an error if the response status code is not success",()=>{const t={data:new Uint8Array,statusCode:new Uint8Array([106,128])},r=new e.SendEIP712StructImplemCommand({type:e.StructImplemType.ROOT,value:"ledger"}).parseResponse(t);expect((0,o.isSuccessCommandResult)(r)).toBe(!1)}),it("should not return an error if the response status code is success",()=>{const t={data:new Uint8Array,statusCode:new Uint8Array([144,0])},n=new e.SendEIP712StructImplemCommand({type:e.StructImplemType.ROOT,value:"ledger"});expect(n.parseResponse(t)).toStrictEqual((0,o.CommandResultFactory)({data:void 0}))})})});
|
|
1
|
+
"use strict";var o=require("@ledgerhq/device-management-kit"),e=require("./SendEIP712StructImplemCommand");const s=Uint8Array.from([224,28,0,0,6,108,101,100,103,101,114]),c=Uint8Array.from([224,28,0,15,1,19]),a=Uint8Array.from([224,28,0,255,6,0,4,1,2,3,4]),m=Uint8Array.from([224,28,1,255,5,5,6,7,8,9]);describe("SendEIP712StructImplemCommand",()=>{describe("name",()=>{it("should be 'sendEIP712StructImplem'",()=>{const t=new e.SendEIP712StructImplemCommand({type:e.StructImplemType.ROOT,value:"test"});expect(t.name).toBe("sendEIP712StructImplem")})}),describe("getApdu",()=>{it("should return the correct APDU for ROOT",()=>{const t={type:e.StructImplemType.ROOT,value:"ledger"},r=new e.SendEIP712StructImplemCommand(t).getApdu();expect(r.getRawApdu()).toStrictEqual(s)}),it("should return the correct APDU for ARRAY",()=>{const t={type:e.StructImplemType.ARRAY,value:19},r=new e.SendEIP712StructImplemCommand(t).getApdu();expect(r.getRawApdu()).toStrictEqual(c)}),it("should return the correct APDU for FIELD when receiving last chunk",()=>{const t={type:e.StructImplemType.FIELD,value:{data:Uint8Array.from([0,4,1,2,3,4]),isLastChunk:!0}},r=new e.SendEIP712StructImplemCommand(t).getApdu();expect(r.getRawApdu()).toStrictEqual(a)}),it("should return the correct APDU for FIELD when receiving other chunk",()=>{const t={type:e.StructImplemType.FIELD,value:{data:Uint8Array.from([5,6,7,8,9]),isLastChunk:!1}},r=new e.SendEIP712StructImplemCommand(t).getApdu();expect(r.getRawApdu()).toStrictEqual(m)})}),describe("parseResponse",()=>{it("should return an error if the response status code is not success",()=>{const t={data:new Uint8Array,statusCode:new Uint8Array([106,128])},r=new e.SendEIP712StructImplemCommand({type:e.StructImplemType.ROOT,value:"ledger"}).parseResponse(t);expect((0,o.isSuccessCommandResult)(r)).toBe(!1)}),it("should not return an error if the response status code is success",()=>{const t={data:new Uint8Array,statusCode:new Uint8Array([144,0])},n=new e.SendEIP712StructImplemCommand({type:e.StructImplemType.ROOT,value:"ledger"});expect(n.parseResponse(t)).toStrictEqual((0,o.CommandResultFactory)({data:void 0}))})})});
|
|
2
2
|
//# sourceMappingURL=SendEIP712StructImplemCommand.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/command/SendEIP712StructImplemCommand.test.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n CommandResultFactory,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport {\n SendEIP712StructImplemCommand,\n type SendEIP712StructImplemCommandArgs,\n StructImplemType,\n} from \"./SendEIP712StructImplemCommand\";\n\nconst ROOT_APDU = Uint8Array.from([\n 0xe0, 0x1c, 0x00, 0x00, 0x06, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72,\n]);\n\nconst ARRAY_APDU = Uint8Array.from([0xe0, 0x1c, 0x00, 0x0f, 0x01, 0x13]);\n\nconst FIELD_LAST_CHUNK_APDU = Uint8Array.from([\n 0xe0, 0x1c, 0x00, 0xff, 0x06, 0x00, 0x04, 0x01, 0x02, 0x03, 0x04,\n]);\n\nconst FIELD_OTHER_CHUNK_APDU = Uint8Array.from([\n 0xe0, 0x1c, 0x01, 0xff, 0x05, 0x05, 0x06, 0x07, 0x08, 0x09,\n]);\n\ndescribe(\"SendEIP712StructImplemCommand\", () => {\n describe(\"getApdu\", () => {\n it(\"should return the correct APDU for ROOT\", () => {\n // GIVEN\n const args: SendEIP712StructImplemCommandArgs = {\n type: StructImplemType.ROOT,\n value: \"ledger\",\n };\n // WHEN\n const command = new SendEIP712StructImplemCommand(args);\n const apdu = command.getApdu();\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(ROOT_APDU);\n });\n it(\"should return the correct APDU for ARRAY\", () => {\n // GIVEN\n const args: SendEIP712StructImplemCommandArgs = {\n type: StructImplemType.ARRAY,\n value: 19,\n };\n // WHEN\n const command = new SendEIP712StructImplemCommand(args);\n const apdu = command.getApdu();\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(ARRAY_APDU);\n });\n it(\"should return the correct APDU for FIELD when receiving last chunk\", () => {\n // GIVEN\n const args: SendEIP712StructImplemCommandArgs = {\n type: StructImplemType.FIELD,\n value: {\n data: Uint8Array.from([0x00, 0x04, 0x01, 0x02, 0x03, 0x04]),\n isLastChunk: true,\n },\n };\n // WHEN\n const command = new SendEIP712StructImplemCommand(args);\n const apdu = command.getApdu();\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(FIELD_LAST_CHUNK_APDU);\n });\n it(\"should return the correct APDU for FIELD when receiving other chunk\", () => {\n // GIVEN\n const args: SendEIP712StructImplemCommandArgs = {\n type: StructImplemType.FIELD,\n value: {\n data: Uint8Array.from([0x05, 0x06, 0x07, 0x08, 0x09]),\n isLastChunk: false,\n },\n };\n // WHEN\n const command = new SendEIP712StructImplemCommand(args);\n const apdu = command.getApdu();\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(FIELD_OTHER_CHUNK_APDU);\n });\n });\n describe(\"parseResponse\", () => {\n it(\"should return an error if the response status code is not success\", () => {\n // GIVEN\n const response = {\n data: new Uint8Array(),\n statusCode: new Uint8Array([0x6a, 0x80]),\n };\n // WHEN\n const command = new SendEIP712StructImplemCommand({\n type: StructImplemType.ROOT,\n value: \"ledger\",\n });\n // THEN\n const result = command.parseResponse(response);\n expect(isSuccessCommandResult(result)).toBe(false);\n });\n it(\"should not return an error if the response status code is success\", () => {\n // GIVEN\n const response = {\n data: new Uint8Array(),\n statusCode: new Uint8Array([0x90, 0x00]),\n };\n // WHEN\n const command = new SendEIP712StructImplemCommand({\n type: StructImplemType.ROOT,\n value: \"ledger\",\n });\n // THEN\n expect(command.parseResponse(response)).toStrictEqual(\n CommandResultFactory({ data: undefined }),\n );\n });\n });\n});\n"],
|
|
5
|
-
"mappings": "aAAA,IAAAA,EAGO,2CAEPC,EAIO,2CAEP,MAAMC,EAAY,WAAW,KAAK,CAChC,IAAM,GAAM,EAAM,EAAM,EAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAC9D,CAAC,EAEKC,EAAa,WAAW,KAAK,CAAC,IAAM,GAAM,EAAM,GAAM,EAAM,EAAI,CAAC,EAEjEC,EAAwB,WAAW,KAAK,CAC5C,IAAM,GAAM,EAAM,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,CAC9D,CAAC,EAEKC,EAAyB,WAAW,KAAK,CAC7C,IAAM,GAAM,EAAM,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,CACxD,CAAC,EAED,SAAS,gCAAiC,IAAM,CAC9C,SAAS,UAAW,IAAM,CACxB,GAAG,0CAA2C,IAAM,CAElD,MAAMC,EAA0C,CAC9C,KAAM,mBAAiB,KACvB,MAAO,QACT,EAGMC,EADU,IAAI,gCAA8BD,CAAI,EACjC,QAAQ,EAE7B,OAAOC,EAAK,WAAW,CAAC,EAAE,
|
|
6
|
-
"names": ["import_device_management_kit", "import_SendEIP712StructImplemCommand", "ROOT_APDU", "ARRAY_APDU", "FIELD_LAST_CHUNK_APDU", "FIELD_OTHER_CHUNK_APDU", "args", "apdu", "response", "result"
|
|
4
|
+
"sourcesContent": ["import {\n CommandResultFactory,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport {\n SendEIP712StructImplemCommand,\n type SendEIP712StructImplemCommandArgs,\n StructImplemType,\n} from \"./SendEIP712StructImplemCommand\";\n\nconst ROOT_APDU = Uint8Array.from([\n 0xe0, 0x1c, 0x00, 0x00, 0x06, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72,\n]);\n\nconst ARRAY_APDU = Uint8Array.from([0xe0, 0x1c, 0x00, 0x0f, 0x01, 0x13]);\n\nconst FIELD_LAST_CHUNK_APDU = Uint8Array.from([\n 0xe0, 0x1c, 0x00, 0xff, 0x06, 0x00, 0x04, 0x01, 0x02, 0x03, 0x04,\n]);\n\nconst FIELD_OTHER_CHUNK_APDU = Uint8Array.from([\n 0xe0, 0x1c, 0x01, 0xff, 0x05, 0x05, 0x06, 0x07, 0x08, 0x09,\n]);\n\ndescribe(\"SendEIP712StructImplemCommand\", () => {\n describe(\"name\", () => {\n it(\"should be 'sendEIP712StructImplem'\", () => {\n const command = new SendEIP712StructImplemCommand({\n type: StructImplemType.ROOT,\n value: \"test\",\n });\n expect(command.name).toBe(\"sendEIP712StructImplem\");\n });\n });\n\n describe(\"getApdu\", () => {\n it(\"should return the correct APDU for ROOT\", () => {\n // GIVEN\n const args: SendEIP712StructImplemCommandArgs = {\n type: StructImplemType.ROOT,\n value: \"ledger\",\n };\n // WHEN\n const command = new SendEIP712StructImplemCommand(args);\n const apdu = command.getApdu();\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(ROOT_APDU);\n });\n it(\"should return the correct APDU for ARRAY\", () => {\n // GIVEN\n const args: SendEIP712StructImplemCommandArgs = {\n type: StructImplemType.ARRAY,\n value: 19,\n };\n // WHEN\n const command = new SendEIP712StructImplemCommand(args);\n const apdu = command.getApdu();\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(ARRAY_APDU);\n });\n it(\"should return the correct APDU for FIELD when receiving last chunk\", () => {\n // GIVEN\n const args: SendEIP712StructImplemCommandArgs = {\n type: StructImplemType.FIELD,\n value: {\n data: Uint8Array.from([0x00, 0x04, 0x01, 0x02, 0x03, 0x04]),\n isLastChunk: true,\n },\n };\n // WHEN\n const command = new SendEIP712StructImplemCommand(args);\n const apdu = command.getApdu();\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(FIELD_LAST_CHUNK_APDU);\n });\n it(\"should return the correct APDU for FIELD when receiving other chunk\", () => {\n // GIVEN\n const args: SendEIP712StructImplemCommandArgs = {\n type: StructImplemType.FIELD,\n value: {\n data: Uint8Array.from([0x05, 0x06, 0x07, 0x08, 0x09]),\n isLastChunk: false,\n },\n };\n // WHEN\n const command = new SendEIP712StructImplemCommand(args);\n const apdu = command.getApdu();\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(FIELD_OTHER_CHUNK_APDU);\n });\n });\n describe(\"parseResponse\", () => {\n it(\"should return an error if the response status code is not success\", () => {\n // GIVEN\n const response = {\n data: new Uint8Array(),\n statusCode: new Uint8Array([0x6a, 0x80]),\n };\n // WHEN\n const command = new SendEIP712StructImplemCommand({\n type: StructImplemType.ROOT,\n value: \"ledger\",\n });\n // THEN\n const result = command.parseResponse(response);\n expect(isSuccessCommandResult(result)).toBe(false);\n });\n it(\"should not return an error if the response status code is success\", () => {\n // GIVEN\n const response = {\n data: new Uint8Array(),\n statusCode: new Uint8Array([0x90, 0x00]),\n };\n // WHEN\n const command = new SendEIP712StructImplemCommand({\n type: StructImplemType.ROOT,\n value: \"ledger\",\n });\n // THEN\n expect(command.parseResponse(response)).toStrictEqual(\n CommandResultFactory({ data: undefined }),\n );\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "aAAA,IAAAA,EAGO,2CAEPC,EAIO,2CAEP,MAAMC,EAAY,WAAW,KAAK,CAChC,IAAM,GAAM,EAAM,EAAM,EAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAC9D,CAAC,EAEKC,EAAa,WAAW,KAAK,CAAC,IAAM,GAAM,EAAM,GAAM,EAAM,EAAI,CAAC,EAEjEC,EAAwB,WAAW,KAAK,CAC5C,IAAM,GAAM,EAAM,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,CAC9D,CAAC,EAEKC,EAAyB,WAAW,KAAK,CAC7C,IAAM,GAAM,EAAM,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,CACxD,CAAC,EAED,SAAS,gCAAiC,IAAM,CAC9C,SAAS,OAAQ,IAAM,CACrB,GAAG,qCAAsC,IAAM,CAC7C,MAAMC,EAAU,IAAI,gCAA8B,CAChD,KAAM,mBAAiB,KACvB,MAAO,MACT,CAAC,EACD,OAAOA,EAAQ,IAAI,EAAE,KAAK,wBAAwB,CACpD,CAAC,CACH,CAAC,EAED,SAAS,UAAW,IAAM,CACxB,GAAG,0CAA2C,IAAM,CAElD,MAAMC,EAA0C,CAC9C,KAAM,mBAAiB,KACvB,MAAO,QACT,EAGMC,EADU,IAAI,gCAA8BD,CAAI,EACjC,QAAQ,EAE7B,OAAOC,EAAK,WAAW,CAAC,EAAE,cAAcN,CAAS,CACnD,CAAC,EACD,GAAG,2CAA4C,IAAM,CAEnD,MAAMK,EAA0C,CAC9C,KAAM,mBAAiB,MACvB,MAAO,EACT,EAGMC,EADU,IAAI,gCAA8BD,CAAI,EACjC,QAAQ,EAE7B,OAAOC,EAAK,WAAW,CAAC,EAAE,cAAcL,CAAU,CACpD,CAAC,EACD,GAAG,qEAAsE,IAAM,CAE7E,MAAMI,EAA0C,CAC9C,KAAM,mBAAiB,MACvB,MAAO,CACL,KAAM,WAAW,KAAK,CAAC,EAAM,EAAM,EAAM,EAAM,EAAM,CAAI,CAAC,EAC1D,YAAa,EACf,CACF,EAGMC,EADU,IAAI,gCAA8BD,CAAI,EACjC,QAAQ,EAE7B,OAAOC,EAAK,WAAW,CAAC,EAAE,cAAcJ,CAAqB,CAC/D,CAAC,EACD,GAAG,sEAAuE,IAAM,CAE9E,MAAMG,EAA0C,CAC9C,KAAM,mBAAiB,MACvB,MAAO,CACL,KAAM,WAAW,KAAK,CAAC,EAAM,EAAM,EAAM,EAAM,CAAI,CAAC,EACpD,YAAa,EACf,CACF,EAGMC,EADU,IAAI,gCAA8BD,CAAI,EACjC,QAAQ,EAE7B,OAAOC,EAAK,WAAW,CAAC,EAAE,cAAcH,CAAsB,CAChE,CAAC,CACH,CAAC,EACD,SAAS,gBAAiB,IAAM,CAC9B,GAAG,oEAAqE,IAAM,CAE5E,MAAMI,EAAW,CACf,KAAM,IAAI,WACV,WAAY,IAAI,WAAW,CAAC,IAAM,GAAI,CAAC,CACzC,EAOMC,EALU,IAAI,gCAA8B,CAChD,KAAM,mBAAiB,KACvB,MAAO,QACT,CAAC,EAEsB,cAAcD,CAAQ,EAC7C,UAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,CACnD,CAAC,EACD,GAAG,oEAAqE,IAAM,CAE5E,MAAMD,EAAW,CACf,KAAM,IAAI,WACV,WAAY,IAAI,WAAW,CAAC,IAAM,CAAI,CAAC,CACzC,EAEMH,EAAU,IAAI,gCAA8B,CAChD,KAAM,mBAAiB,KACvB,MAAO,QACT,CAAC,EAED,OAAOA,EAAQ,cAAcG,CAAQ,CAAC,EAAE,iBACtC,wBAAqB,CAAE,KAAM,MAAU,CAAC,CAC1C,CACF,CAAC,CACH,CAAC,CACH,CAAC",
|
|
6
|
+
"names": ["import_device_management_kit", "import_SendEIP712StructImplemCommand", "ROOT_APDU", "ARRAY_APDU", "FIELD_LAST_CHUNK_APDU", "FIELD_OTHER_CHUNK_APDU", "command", "args", "apdu", "response", "result"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var d=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var g=(e,r)=>{for(var o in r)d(e,o,{get:r[o],enumerable:!0})},E=(e,r,o,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of i(r))!u.call(e,t)&&t!==o&&d(e,t,{get:()=>r[t],enumerable:!(s=m(r,t))||s.enumerable});return e};var A=e=>E(d({},"__esModule",{value:!0}),e);var C={};g(C,{SetExternalPluginCommand:()=>y});module.exports=A(C);var a=require("@ledgerhq/device-management-kit"),p=require("@ledgerhq/signer-utils"),l=require("purify-ts"),n=require("./utils/ethAppErrors");class y{constructor(r){this.args=r}name="setExternalPlugin";errorHelper=new p.CommandErrorHelper(n.ETH_APP_ERRORS,n.EthAppCommandErrorFactory);getApdu(){const r={cla:224,ins:18,p1:0,p2:0};return new a.ApduBuilder(r).addHexaStringToData(this.args.payload).addHexaStringToData(this.args.signature??"").build()}parseResponse(r){return l.Maybe.fromNullable(this.errorHelper.getError(r)).orDefault((0,a.CommandResultFactory)({data:void 0}))}}0&&(module.exports={SetExternalPluginCommand});
|
|
2
2
|
//# sourceMappingURL=SetExternalPluginCommand.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/command/SetExternalPluginCommand.ts"],
|
|
4
|
-
"sourcesContent": ["// https://github.com/LedgerHQ/app-ethereum/blob/develop/doc/ethapp.adoc#set-external-plugin\nimport {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\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 ETH_APP_ERRORS,\n EthAppCommandErrorFactory,\n type EthErrorCodes,\n} from \"./utils/ethAppErrors\";\n\ntype SetExternalPluginCommandArgs = {\n payload: string;\n signature?: string;\n};\n\nexport class SetExternalPluginCommand\n implements Command<void, SetExternalPluginCommandArgs, EthErrorCodes>\n{\n constructor(private readonly args: SetExternalPluginCommandArgs) {}\n private readonly errorHelper = new CommandErrorHelper<void, EthErrorCodes>(\n ETH_APP_ERRORS,\n EthAppCommandErrorFactory,\n );\n\n getApdu(): Apdu {\n const setExternalPluginBuilderArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x12,\n p1: 0x00,\n p2: 0x00,\n };\n return (\n new ApduBuilder(setExternalPluginBuilderArgs)\n .addHexaStringToData(this.args.payload)\n /**\n * The signature is normally integrated in the payload, but keeping this step for safety reasons and will be removed in the future.\n */\n .addHexaStringToData(this.args.signature ?? \"\")\n .build()\n );\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<void, EthErrorCodes> {\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,8BAAAE,IAAA,eAAAC,EAAAH,GACA,IAAAI,EAQO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAEtBC,EAIO,gCAOA,MAAML,CAEb,
|
|
4
|
+
"sourcesContent": ["// https://github.com/LedgerHQ/app-ethereum/blob/develop/doc/ethapp.adoc#set-external-plugin\nimport {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\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 ETH_APP_ERRORS,\n EthAppCommandErrorFactory,\n type EthErrorCodes,\n} from \"./utils/ethAppErrors\";\n\ntype SetExternalPluginCommandArgs = {\n payload: string;\n signature?: string;\n};\n\nexport class SetExternalPluginCommand\n implements Command<void, SetExternalPluginCommandArgs, EthErrorCodes>\n{\n readonly name = \"setExternalPlugin\";\n\n constructor(private readonly args: SetExternalPluginCommandArgs) {}\n private readonly errorHelper = new CommandErrorHelper<void, EthErrorCodes>(\n ETH_APP_ERRORS,\n EthAppCommandErrorFactory,\n );\n\n getApdu(): Apdu {\n const setExternalPluginBuilderArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x12,\n p1: 0x00,\n p2: 0x00,\n };\n return (\n new ApduBuilder(setExternalPluginBuilderArgs)\n .addHexaStringToData(this.args.payload)\n /**\n * The signature is normally integrated in the payload, but keeping this step for safety reasons and will be removed in the future.\n */\n .addHexaStringToData(this.args.signature ?? \"\")\n .build()\n );\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<void, EthErrorCodes> {\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,8BAAAE,IAAA,eAAAC,EAAAH,GACA,IAAAI,EAQO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAEtBC,EAIO,gCAOA,MAAML,CAEb,CAGE,YAA6BM,EAAoC,CAApC,UAAAA,CAAqC,CAFzD,KAAO,oBAGC,YAAc,IAAI,qBACjC,iBACA,2BACF,EAEA,SAAgB,CACd,MAAMC,EAAgD,CACpD,IAAK,IACL,IAAK,GACL,GAAI,EACJ,GAAI,CACN,EACA,OACE,IAAI,cAAYA,CAA4B,EACzC,oBAAoB,KAAK,KAAK,OAAO,EAIrC,oBAAoB,KAAK,KAAK,WAAa,EAAE,EAC7C,MAAM,CAEb,CAEA,cACEC,EACoC,CACpC,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAY,CACxC,EAAE,aAAU,wBAAqB,CAAE,KAAM,MAAU,CAAC,CAAC,CACvD,CACF",
|
|
6
6
|
"names": ["SetExternalPluginCommand_exports", "__export", "SetExternalPluginCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_purify_ts", "import_ethAppErrors", "args", "setExternalPluginBuilderArgs", "apduResponse"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
"use strict";var e=require("@ledgerhq/device-management-kit"),
|
|
1
|
+
"use strict";var e=require("@ledgerhq/device-management-kit"),o=require("../../app-binder/command/SetExternalPluginCommand"),n=require("./utils/ethAppErrors");const s=[8,80,97,114,97,115,119,97,112,222,241,113,254,72,207,1,21,177,216,11,136,220,142,171,89,23,111,238,87,169,5,156,187],d=[4,130,187,242,243,79,54,123,46,91,194,24,71,182,86,111,33,240,151,107,34,211,56,138,154,94,68,106,198,45,37,207,114,91,98,162,85,91,45,212,100,164,218,10,178,244,213,6,130,5,67,175,29,36,36,112,177,177,169,105,162,117,120,243,83],c=[224,18,0,0,s.length+d.length,...s,...d];describe("Set External plugin",()=>{describe("name",()=>{it("should be 'setExternalPlugin'",()=>{const r=new o.SetExternalPluginCommand({payload:""});expect(r.name).toBe("setExternalPlugin")})}),describe("getApdu",()=>{it("should retrieve correct apdu",()=>{const t=new o.SetExternalPluginCommand({payload:s.map(x=>x.toString(16).padStart(2,"0")).join(""),signature:d.map(x=>x.toString(16).padStart(2,"0")).join("")}).getApdu();expect(t.getRawApdu()).toStrictEqual(Uint8Array.from(c))})}),describe("parseResponse",()=>{it.each`
|
|
2
2
|
apduResponseCode | errorCode
|
|
3
3
|
${Uint8Array.from([106,128])} | ${"6a80"}
|
|
4
4
|
${Uint8Array.from([105,132])} | ${"6984"}
|
|
5
5
|
${Uint8Array.from([109,0])} | ${"6d00"}
|
|
6
|
-
`("should return an error for the response status code $errorCode",({apduResponseCode:
|
|
6
|
+
`("should return an error for the response status code $errorCode",({apduResponseCode:r,errorCode:t})=>{const x=new e.ApduResponse({data:Uint8Array.from([]),statusCode:r}),a=new o.SetExternalPluginCommand({payload:"",signature:""}).parseResponse(x);expect((0,e.isSuccessCommandResult)(a)).toBe(!1),(0,e.isSuccessCommandResult)(a)||(expect(a.error).toBeInstanceOf(n.EthAppCommandError),a.error instanceof n.EthAppCommandError&&expect(a.error.errorCode).toStrictEqual(t))}),it("should return a global error",()=>{const r=new o.SetExternalPluginCommand({payload:"",signature:""}),t=new e.ApduResponse({statusCode:Uint8Array.from([85,21]),data:Uint8Array.from([])}),x=r.parseResponse(t);expect((0,e.isSuccessCommandResult)(x)).toBe(!1),(0,e.isSuccessCommandResult)(x)||(expect(x.error).toBeInstanceOf(e.GlobalCommandError),x.error instanceof e.GlobalCommandError&&expect(x.error.errorCode).toStrictEqual("5515"))}),it("should return void if status is success",()=>{const r=new o.SetExternalPluginCommand({payload:"",signature:""}),t=new e.ApduResponse({statusCode:Uint8Array.from([144,0]),data:Uint8Array.from([])});expect(r.parseResponse(t)).toStrictEqual((0,e.CommandResultFactory)({data:void 0}))})})});
|
|
7
7
|
//# sourceMappingURL=SetExternalPluginCommand.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/command/SetExternalPluginCommand.test.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n ApduResponse,\n CommandResultFactory,\n GlobalCommandError,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { SetExternalPluginCommand } from \"@internal/app-binder/command/SetExternalPluginCommand\";\n\nimport { EthAppCommandError } from \"./utils/ethAppErrors\";\n\n/**\n * Test payload contains:\n * Length of plugin name : 08\n * Plugin Name : Paraswap\n * contract address: 0xdef171fe48cf0115b1d80b88dc8eab59176fee57\n * method selector: 0xa9059cbb\n */\nconst SET_EXTERNAL_PLUGIN_PAYLOAD = [\n 0x08, 0x50, 0x61, 0x72, 0x61, 0x73, 0x77, 0x61, 0x70, 0xde, 0xf1, 0x71, 0xfe,\n 0x48, 0xcf, 0x01, 0x15, 0xb1, 0xd8, 0x0b, 0x88, 0xdc, 0x8e, 0xab, 0x59, 0x17,\n 0x6f, 0xee, 0x57, 0xa9, 0x05, 0x9c, 0xbb,\n];\n// Public signature key: https://github.com/LedgerHQ/app-ethereum/blob/develop/doc/ethapp.adoc#set-external-plugin\nconst SET_EXTERNAL_PLUGIN_SIGNATURE = [\n 0x04, 0x82, 0xbb, 0xf2, 0xf3, 0x4f, 0x36, 0x7b, 0x2e, 0x5b, 0xc2, 0x18, 0x47,\n 0xb6, 0x56, 0x6f, 0x21, 0xf0, 0x97, 0x6b, 0x22, 0xd3, 0x38, 0x8a, 0x9a, 0x5e,\n 0x44, 0x6a, 0xc6, 0x2d, 0x25, 0xcf, 0x72, 0x5b, 0x62, 0xa2, 0x55, 0x5b, 0x2d,\n 0xd4, 0x64, 0xa4, 0xda, 0x0a, 0xb2, 0xf4, 0xd5, 0x06, 0x82, 0x05, 0x43, 0xaf,\n 0x1d, 0x24, 0x24, 0x70, 0xb1, 0xb1, 0xa9, 0x69, 0xa2, 0x75, 0x78, 0xf3, 0x53,\n];\nconst SET_EXTERNAL_PLUGIN_APDU = [\n 0xe0,\n 0x12,\n 0x00,\n 0x00,\n SET_EXTERNAL_PLUGIN_PAYLOAD.length + SET_EXTERNAL_PLUGIN_SIGNATURE.length,\n ...SET_EXTERNAL_PLUGIN_PAYLOAD,\n ...SET_EXTERNAL_PLUGIN_SIGNATURE,\n];\n\ndescribe(\"Set External plugin\", () => {\n describe(\"getApdu\", () => {\n it(\"should retrieve correct apdu\", () => {\n // given\n const command = new SetExternalPluginCommand({\n payload: SET_EXTERNAL_PLUGIN_PAYLOAD.map((x) =>\n x.toString(16).padStart(2, \"0\"),\n ).join(\"\"),\n signature: SET_EXTERNAL_PLUGIN_SIGNATURE.map((x) =>\n x.toString(16).padStart(2, \"0\"),\n ).join(\"\"),\n });\n // when\n const apdu = command.getApdu();\n // then\n expect(apdu.getRawApdu()).toStrictEqual(\n Uint8Array.from(SET_EXTERNAL_PLUGIN_APDU),\n );\n });\n });\n describe(\"parseResponse\", () => {\n it.each`\n apduResponseCode | errorCode\n ${Uint8Array.from([0x6a, 0x80])} | ${\"6a80\"}\n ${Uint8Array.from([0x69, 0x84])} | ${\"6984\"}\n ${Uint8Array.from([0x6d, 0x00])} | ${\"6d00\"}\n `(\n \"should return an error for the response status code $errorCode\",\n ({\n apduResponseCode,\n errorCode,\n }: Record<\"apduResponseCode\" | \"errorCode\", Uint8Array>) => {\n // GIVEN\n const response = new ApduResponse({\n data: Uint8Array.from([]),\n statusCode: apduResponseCode,\n });\n const command = new SetExternalPluginCommand({\n payload: \"\",\n signature: \"\",\n });\n // WHEN\n const result = command.parseResponse(response);\n // THEN\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect(result.error).toBeInstanceOf(EthAppCommandError);\n if (result.error instanceof EthAppCommandError)\n expect(result.error.errorCode).toStrictEqual(errorCode);\n }\n },\n );\n it(\"should return a global error\", () => {\n // given\n const command = new SetExternalPluginCommand({\n payload: \"\",\n signature: \"\",\n });\n // when\n const apduResponse = new ApduResponse({\n statusCode: Uint8Array.from([0x55, 0x15]),\n data: Uint8Array.from([]),\n });\n // then\n const result = command.parseResponse(apduResponse);\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect(result.error).toBeInstanceOf(GlobalCommandError);\n if (result.error instanceof GlobalCommandError)\n expect(result.error.errorCode).toStrictEqual(\"5515\");\n }\n });\n it(\"should return void if status is success\", () => {\n // given\n const command = new SetExternalPluginCommand({\n payload: \"\",\n signature: \"\",\n });\n // when\n const apduResponse = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: Uint8Array.from([]),\n });\n // then\n expect(command.parseResponse(apduResponse)).toStrictEqual(\n CommandResultFactory({ data: undefined }),\n );\n });\n });\n});\n"],
|
|
5
|
-
"mappings": "aAAA,IAAAA,EAKO,2CAEPC,EAAyC,iEAEzCC,EAAmC,gCASnC,MAAMC,EAA8B,CAClC,EAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IACxE,GAAM,IAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GACxE,IAAM,IAAM,GAAM,IAAM,EAAM,IAAM,GACtC,EAEMC,EAAgC,CACpC,EAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,GACxE,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GACxE,GAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,GAAM,GACxE,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,EAAM,IAAM,EAAM,GAAM,IACxE,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAC1E,EACMC,EAA2B,CAC/B,IACA,GACA,EACA,EACAF,EAA4B,OAASC,EAA8B,OACnE,GAAGD,EACH,GAAGC,CACL,EAEA,SAAS,sBAAuB,IAAM,CACpC,SAAS,UAAW,IAAM,CACxB,GAAG,+BAAgC,IAAM,CAWvC,
|
|
6
|
-
"names": ["import_device_management_kit", "import_SetExternalPluginCommand", "import_ethAppErrors", "SET_EXTERNAL_PLUGIN_PAYLOAD", "SET_EXTERNAL_PLUGIN_SIGNATURE", "SET_EXTERNAL_PLUGIN_APDU", "apdu", "apduResponseCode", "errorCode", "response", "result", "
|
|
4
|
+
"sourcesContent": ["import {\n ApduResponse,\n CommandResultFactory,\n GlobalCommandError,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { SetExternalPluginCommand } from \"@internal/app-binder/command/SetExternalPluginCommand\";\n\nimport { EthAppCommandError } from \"./utils/ethAppErrors\";\n\n/**\n * Test payload contains:\n * Length of plugin name : 08\n * Plugin Name : Paraswap\n * contract address: 0xdef171fe48cf0115b1d80b88dc8eab59176fee57\n * method selector: 0xa9059cbb\n */\nconst SET_EXTERNAL_PLUGIN_PAYLOAD = [\n 0x08, 0x50, 0x61, 0x72, 0x61, 0x73, 0x77, 0x61, 0x70, 0xde, 0xf1, 0x71, 0xfe,\n 0x48, 0xcf, 0x01, 0x15, 0xb1, 0xd8, 0x0b, 0x88, 0xdc, 0x8e, 0xab, 0x59, 0x17,\n 0x6f, 0xee, 0x57, 0xa9, 0x05, 0x9c, 0xbb,\n];\n// Public signature key: https://github.com/LedgerHQ/app-ethereum/blob/develop/doc/ethapp.adoc#set-external-plugin\nconst SET_EXTERNAL_PLUGIN_SIGNATURE = [\n 0x04, 0x82, 0xbb, 0xf2, 0xf3, 0x4f, 0x36, 0x7b, 0x2e, 0x5b, 0xc2, 0x18, 0x47,\n 0xb6, 0x56, 0x6f, 0x21, 0xf0, 0x97, 0x6b, 0x22, 0xd3, 0x38, 0x8a, 0x9a, 0x5e,\n 0x44, 0x6a, 0xc6, 0x2d, 0x25, 0xcf, 0x72, 0x5b, 0x62, 0xa2, 0x55, 0x5b, 0x2d,\n 0xd4, 0x64, 0xa4, 0xda, 0x0a, 0xb2, 0xf4, 0xd5, 0x06, 0x82, 0x05, 0x43, 0xaf,\n 0x1d, 0x24, 0x24, 0x70, 0xb1, 0xb1, 0xa9, 0x69, 0xa2, 0x75, 0x78, 0xf3, 0x53,\n];\nconst SET_EXTERNAL_PLUGIN_APDU = [\n 0xe0,\n 0x12,\n 0x00,\n 0x00,\n SET_EXTERNAL_PLUGIN_PAYLOAD.length + SET_EXTERNAL_PLUGIN_SIGNATURE.length,\n ...SET_EXTERNAL_PLUGIN_PAYLOAD,\n ...SET_EXTERNAL_PLUGIN_SIGNATURE,\n];\n\ndescribe(\"Set External plugin\", () => {\n describe(\"name\", () => {\n it(\"should be 'setExternalPlugin'\", () => {\n const command = new SetExternalPluginCommand({ payload: \"\" });\n expect(command.name).toBe(\"setExternalPlugin\");\n });\n });\n\n describe(\"getApdu\", () => {\n it(\"should retrieve correct apdu\", () => {\n // given\n const command = new SetExternalPluginCommand({\n payload: SET_EXTERNAL_PLUGIN_PAYLOAD.map((x) =>\n x.toString(16).padStart(2, \"0\"),\n ).join(\"\"),\n signature: SET_EXTERNAL_PLUGIN_SIGNATURE.map((x) =>\n x.toString(16).padStart(2, \"0\"),\n ).join(\"\"),\n });\n // when\n const apdu = command.getApdu();\n // then\n expect(apdu.getRawApdu()).toStrictEqual(\n Uint8Array.from(SET_EXTERNAL_PLUGIN_APDU),\n );\n });\n });\n describe(\"parseResponse\", () => {\n it.each`\n apduResponseCode | errorCode\n ${Uint8Array.from([0x6a, 0x80])} | ${\"6a80\"}\n ${Uint8Array.from([0x69, 0x84])} | ${\"6984\"}\n ${Uint8Array.from([0x6d, 0x00])} | ${\"6d00\"}\n `(\n \"should return an error for the response status code $errorCode\",\n ({\n apduResponseCode,\n errorCode,\n }: Record<\"apduResponseCode\" | \"errorCode\", Uint8Array>) => {\n // GIVEN\n const response = new ApduResponse({\n data: Uint8Array.from([]),\n statusCode: apduResponseCode,\n });\n const command = new SetExternalPluginCommand({\n payload: \"\",\n signature: \"\",\n });\n // WHEN\n const result = command.parseResponse(response);\n // THEN\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect(result.error).toBeInstanceOf(EthAppCommandError);\n if (result.error instanceof EthAppCommandError)\n expect(result.error.errorCode).toStrictEqual(errorCode);\n }\n },\n );\n it(\"should return a global error\", () => {\n // given\n const command = new SetExternalPluginCommand({\n payload: \"\",\n signature: \"\",\n });\n // when\n const apduResponse = new ApduResponse({\n statusCode: Uint8Array.from([0x55, 0x15]),\n data: Uint8Array.from([]),\n });\n // then\n const result = command.parseResponse(apduResponse);\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect(result.error).toBeInstanceOf(GlobalCommandError);\n if (result.error instanceof GlobalCommandError)\n expect(result.error.errorCode).toStrictEqual(\"5515\");\n }\n });\n it(\"should return void if status is success\", () => {\n // given\n const command = new SetExternalPluginCommand({\n payload: \"\",\n signature: \"\",\n });\n // when\n const apduResponse = new ApduResponse({\n statusCode: Uint8Array.from([0x90, 0x00]),\n data: Uint8Array.from([]),\n });\n // then\n expect(command.parseResponse(apduResponse)).toStrictEqual(\n CommandResultFactory({ data: undefined }),\n );\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_device_management_kit", "import_SetExternalPluginCommand", "import_ethAppErrors", "SET_EXTERNAL_PLUGIN_PAYLOAD", "SET_EXTERNAL_PLUGIN_SIGNATURE", "SET_EXTERNAL_PLUGIN_APDU", "command", "apdu", "apduResponseCode", "errorCode", "response", "result", "apduResponse"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var p=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var g=(e,r)=>{for(var t in r)p(e,t,{get:r[t],enumerable:!0})},A=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of u(r))!i.call(e,o)&&o!==t&&p(e,o,{get:()=>r[o],enumerable:!(n=l(r,o))||n.enumerable});return e};var y=e=>A(p({},"__esModule",{value:!0}),e);var E={};g(E,{SetPluginCommand:()=>C});module.exports=y(E);var d=require("@ledgerhq/device-management-kit"),m=require("@ledgerhq/signer-utils"),s=require("purify-ts"),a=require("./utils/ethAppErrors");class C{constructor(r){this.args=r}name="setPlugin";errorHelper=new m.CommandErrorHelper(a.ETH_APP_ERRORS,a.EthAppCommandErrorFactory);getApdu(){const r={cla:224,ins:22,p1:0,p2:0};return new d.ApduBuilder(r).addHexaStringToData(this.args.payload).build()}parseResponse(r){return s.Maybe.fromNullable(this.errorHelper.getError(r)).orDefault((0,d.CommandResultFactory)({data:void 0}))}}0&&(module.exports={SetPluginCommand});
|
|
2
2
|
//# sourceMappingURL=SetPluginCommand.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/command/SetPluginCommand.ts"],
|
|
4
|
-
"sourcesContent": ["// https://github.com/LedgerHQ/app-ethereum/blob/develop/doc/ethapp.adoc#set-plugin\nimport {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\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 ETH_APP_ERRORS,\n EthAppCommandErrorFactory,\n type EthErrorCodes,\n} from \"./utils/ethAppErrors\";\n\nexport type SetPluginCommandArgs = {\n /**\n * The stringified hexa representation of the plugin signature.\n */\n payload: string;\n};\n\nexport class SetPluginCommand\n implements Command<void, SetPluginCommandArgs, EthErrorCodes>\n{\n private readonly errorHelper = new CommandErrorHelper<void, EthErrorCodes>(\n ETH_APP_ERRORS,\n EthAppCommandErrorFactory,\n );\n\n constructor(private readonly args: SetPluginCommandArgs) {}\n\n getApdu(): Apdu {\n const apduBuilderArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x16,\n p1: 0x00,\n p2: 0x00,\n };\n return new ApduBuilder(apduBuilderArgs)\n .addHexaStringToData(this.args.payload)\n .build();\n }\n\n parseResponse(response: ApduResponse): CommandResult<void, EthErrorCodes> {\n return Maybe.fromNullable(this.errorHelper.getError(response)).orDefault(\n CommandResultFactory({ data: undefined }),\n );\n }\n}\n"],
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GACA,IAAAI,EAQO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAEtBC,EAIO,gCASA,MAAML,CAEb,
|
|
4
|
+
"sourcesContent": ["// https://github.com/LedgerHQ/app-ethereum/blob/develop/doc/ethapp.adoc#set-plugin\nimport {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\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 ETH_APP_ERRORS,\n EthAppCommandErrorFactory,\n type EthErrorCodes,\n} from \"./utils/ethAppErrors\";\n\nexport type SetPluginCommandArgs = {\n /**\n * The stringified hexa representation of the plugin signature.\n */\n payload: string;\n};\n\nexport class SetPluginCommand\n implements Command<void, SetPluginCommandArgs, EthErrorCodes>\n{\n readonly name = \"setPlugin\";\n private readonly errorHelper = new CommandErrorHelper<void, EthErrorCodes>(\n ETH_APP_ERRORS,\n EthAppCommandErrorFactory,\n );\n\n constructor(private readonly args: SetPluginCommandArgs) {}\n\n getApdu(): Apdu {\n const apduBuilderArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x16,\n p1: 0x00,\n p2: 0x00,\n };\n return new ApduBuilder(apduBuilderArgs)\n .addHexaStringToData(this.args.payload)\n .build();\n }\n\n parseResponse(response: ApduResponse): CommandResult<void, EthErrorCodes> {\n return Maybe.fromNullable(this.errorHelper.getError(response)).orDefault(\n CommandResultFactory({ data: undefined }),\n );\n }\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GACA,IAAAI,EAQO,2CACPC,EAAmC,kCACnCC,EAAsB,qBAEtBC,EAIO,gCASA,MAAML,CAEb,CAOE,YAA6BM,EAA4B,CAA5B,UAAAA,CAA6B,CANjD,KAAO,YACC,YAAc,IAAI,qBACjC,iBACA,2BACF,EAIA,SAAgB,CACd,MAAMC,EAAmC,CACvC,IAAK,IACL,IAAK,GACL,GAAI,EACJ,GAAI,CACN,EACA,OAAO,IAAI,cAAYA,CAAe,EACnC,oBAAoB,KAAK,KAAK,OAAO,EACrC,MAAM,CACX,CAEA,cAAcC,EAA4D,CACxE,OAAO,QAAM,aAAa,KAAK,YAAY,SAASA,CAAQ,CAAC,EAAE,aAC7D,wBAAqB,CAAE,KAAM,MAAU,CAAC,CAC1C,CACF,CACF",
|
|
6
6
|
"names": ["SetPluginCommand_exports", "__export", "SetPluginCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_purify_ts", "import_ethAppErrors", "args", "apduBuilderArgs", "response"]
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var e=require("@ledgerhq/device-management-kit"),t=require("./utils/ethAppErrors"),c=require("./SetPluginCommand");const s="010106455243373231c5b07a55501014f36ec5d39d950a321439f6dd7642842e0e0000000000000001020147304502206d9f515916283e08fa6cdab205668c0739c558dcd6691a69ce74cd89fbc2cc6e022100c28c17b058e6d453570a58d69ff62042037dc61149af2f5161d5c36fdc5dc301",a=Uint8Array.from([224,22,0,0,115,1,1,6,69,82,67,55,50,49,197,176,122,85,80,16,20,243,110,197,211,157,149,10,50,20,57,246,221,118,66,132,46,14,0,0,0,0,0,0,0,1,2,1,71,48,69,2,32,109,159,81,89,22,40,62,8,250,108,218,178,5,102,140,7,57,197,88,220,214,105,26,105,206,116,205,137,251,194,204,110,2,33,0,194,140,23,176,88,230,212,83,87,10,88,214,159,246,32,66,3,125,198,17,73,175,47,81,97,213,195,111,220,93,195,1]);describe("SetPluginCommand",()=>{describe("name",()=>{it("should be 'setPlugin'",()=>{const x=new c.SetPluginCommand({payload:""});expect(x.name).toBe("setPlugin")})}),describe("getApdu",()=>{it("returns the correct APDU",()=>{const x={payload:s},o=new c.SetPluginCommand(x).getApdu();expect(o.getRawApdu()).toStrictEqual(a)})}),describe("parseResponse",()=>{it.each`
|
|
2
2
|
apduResponseCode | errorCode
|
|
3
3
|
${Uint8Array.from([105,132])} | ${"6984"}
|
|
4
4
|
${Uint8Array.from([109,0])} | ${"6d00"}
|
|
5
|
-
`("should return an error for the response status code $errorCode",({apduResponseCode:
|
|
5
|
+
`("should return an error for the response status code $errorCode",({apduResponseCode:x,errorCode:d})=>{const o=new e.ApduResponse({data:Uint8Array.from([]),statusCode:x}),r=new c.SetPluginCommand({payload:""}).parseResponse(o);expect((0,e.isSuccessCommandResult)(r)).toBe(!1),(0,e.isSuccessCommandResult)(r)||(expect(r.error).toBeInstanceOf(t.EthAppCommandError),r.error instanceof t.EthAppCommandError&&expect(r.error.errorCode).toStrictEqual(d))}),it("should return success if the response status code is correct",()=>{const x={data:Buffer.from([]),statusCode:Buffer.from([144,0])},o=new c.SetPluginCommand({payload:""}).parseResponse(x);expect((0,e.isSuccessCommandResult)(o)).toBe(!0)})})});
|
|
6
6
|
//# sourceMappingURL=SetPluginCommand.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/command/SetPluginCommand.test.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n ApduResponse,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { EthAppCommandError } from \"./utils/ethAppErrors\";\nimport {\n SetPluginCommand,\n type SetPluginCommandArgs,\n} from \"./SetPluginCommand\";\n\nconst SET_PLUGIN_COMMAND_PAYLOAD =\n \"010106455243373231c5b07a55501014f36ec5d39d950a321439f6dd7642842e0e0000000000000001020147304502206d9f515916283e08fa6cdab205668c0739c558dcd6691a69ce74cd89fbc2cc6e022100c28c17b058e6d453570a58d69ff62042037dc61149af2f5161d5c36fdc5dc301\";\n\nconst SET_PLUGIN_COMMAND_APDU = Uint8Array.from([\n 0xe0, 0x16, 0x00, 0x00, 0x73, 0x01, 0x01, 0x06, 0x45, 0x52, 0x43, 0x37, 0x32,\n 0x31, 0xc5, 0xb0, 0x7a, 0x55, 0x50, 0x10, 0x14, 0xf3, 0x6e, 0xc5, 0xd3, 0x9d,\n 0x95, 0x0a, 0x32, 0x14, 0x39, 0xf6, 0xdd, 0x76, 0x42, 0x84, 0x2e, 0x0e, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x01, 0x47, 0x30, 0x45, 0x02,\n 0x20, 0x6d, 0x9f, 0x51, 0x59, 0x16, 0x28, 0x3e, 0x08, 0xfa, 0x6c, 0xda, 0xb2,\n 0x05, 0x66, 0x8c, 0x07, 0x39, 0xc5, 0x58, 0xdc, 0xd6, 0x69, 0x1a, 0x69, 0xce,\n 0x74, 0xcd, 0x89, 0xfb, 0xc2, 0xcc, 0x6e, 0x02, 0x21, 0x00, 0xc2, 0x8c, 0x17,\n 0xb0, 0x58, 0xe6, 0xd4, 0x53, 0x57, 0x0a, 0x58, 0xd6, 0x9f, 0xf6, 0x20, 0x42,\n 0x03, 0x7d, 0xc6, 0x11, 0x49, 0xaf, 0x2f, 0x51, 0x61, 0xd5, 0xc3, 0x6f, 0xdc,\n 0x5d, 0xc3, 0x01,\n]);\n\ndescribe(\"SetPluginCommand\", () => {\n describe(\"getApdu\", () => {\n it(\"returns the correct APDU\", () => {\n // GIVEN\n const args: SetPluginCommandArgs = {\n payload: SET_PLUGIN_COMMAND_PAYLOAD,\n };\n // WHEN\n const command = new SetPluginCommand(args);\n const apdu = command.getApdu();\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(SET_PLUGIN_COMMAND_APDU);\n });\n });\n describe(\"parseResponse\", () => {\n it.each`\n apduResponseCode | errorCode\n ${Uint8Array.from([0x69, 0x84])} | ${\"6984\"}\n ${Uint8Array.from([0x6d, 0x00])} | ${\"6d00\"}\n `(\n \"should return an error for the response status code $errorCode\",\n ({\n apduResponseCode,\n errorCode,\n }: Record<\"apduResponseCode\" | \"errorCode\", Uint8Array>) => {\n // GIVEN\n const response = new ApduResponse({\n data: Uint8Array.from([]),\n statusCode: apduResponseCode,\n });\n const command = new SetPluginCommand({ payload: \"\" });\n // WHEN\n const result = command.parseResponse(response);\n // THEN\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect(result.error).toBeInstanceOf(EthAppCommandError);\n if (result.error instanceof EthAppCommandError)\n expect(result.error.errorCode).toStrictEqual(errorCode);\n }\n },\n );\n\n it(\"should return success if the response status code is correct\", () => {\n // GIVEN\n const response: ApduResponse = {\n data: Buffer.from([]),\n statusCode: Buffer.from([0x90, 0x00]), // Success status code\n };\n // WHEN\n const command = new SetPluginCommand({ payload: \"\" });\n const result = command.parseResponse(response);\n // THEN\n expect(isSuccessCommandResult(result)).toBe(true);\n });\n });\n});\n"],
|
|
5
|
-
"mappings": "aAAA,IAAAA,EAGO,2CAEPC,EAAmC,gCACnCC,EAGO,8BAEP,MAAMC,EACJ,yOAEIC,EAA0B,WAAW,KAAK,CAC9C,IAAM,GAAM,EAAM,EAAM,IAAM,EAAM,EAAM,EAAM,GAAM,GAAM,GAAM,GAAM,GACxE,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IACxE,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,EACxE,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAM,GAAM,GAAM,EACxE,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,EAAM,IAAM,IAAM,IAAM,IACxE,EAAM,IAAM,IAAM,EAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IACxE,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,GAAM,EAAM,IAAM,IAAM,GACxE,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GACxE,EAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IACxE,GAAM,IAAM,CACd,CAAC,EAED,SAAS,mBAAoB,IAAM,CACjC,SAAS,UAAW,IAAM,CACxB,GAAG,2BAA4B,IAAM,CAEnC,MAAMC,EAA6B,CACjC,
|
|
6
|
-
"names": ["import_device_management_kit", "import_ethAppErrors", "import_SetPluginCommand", "SET_PLUGIN_COMMAND_PAYLOAD", "SET_PLUGIN_COMMAND_APDU", "args", "apdu", "apduResponseCode", "errorCode", "response", "result"]
|
|
4
|
+
"sourcesContent": ["import {\n ApduResponse,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\n\nimport { EthAppCommandError } from \"./utils/ethAppErrors\";\nimport {\n SetPluginCommand,\n type SetPluginCommandArgs,\n} from \"./SetPluginCommand\";\n\nconst SET_PLUGIN_COMMAND_PAYLOAD =\n \"010106455243373231c5b07a55501014f36ec5d39d950a321439f6dd7642842e0e0000000000000001020147304502206d9f515916283e08fa6cdab205668c0739c558dcd6691a69ce74cd89fbc2cc6e022100c28c17b058e6d453570a58d69ff62042037dc61149af2f5161d5c36fdc5dc301\";\n\nconst SET_PLUGIN_COMMAND_APDU = Uint8Array.from([\n 0xe0, 0x16, 0x00, 0x00, 0x73, 0x01, 0x01, 0x06, 0x45, 0x52, 0x43, 0x37, 0x32,\n 0x31, 0xc5, 0xb0, 0x7a, 0x55, 0x50, 0x10, 0x14, 0xf3, 0x6e, 0xc5, 0xd3, 0x9d,\n 0x95, 0x0a, 0x32, 0x14, 0x39, 0xf6, 0xdd, 0x76, 0x42, 0x84, 0x2e, 0x0e, 0x00,\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x01, 0x47, 0x30, 0x45, 0x02,\n 0x20, 0x6d, 0x9f, 0x51, 0x59, 0x16, 0x28, 0x3e, 0x08, 0xfa, 0x6c, 0xda, 0xb2,\n 0x05, 0x66, 0x8c, 0x07, 0x39, 0xc5, 0x58, 0xdc, 0xd6, 0x69, 0x1a, 0x69, 0xce,\n 0x74, 0xcd, 0x89, 0xfb, 0xc2, 0xcc, 0x6e, 0x02, 0x21, 0x00, 0xc2, 0x8c, 0x17,\n 0xb0, 0x58, 0xe6, 0xd4, 0x53, 0x57, 0x0a, 0x58, 0xd6, 0x9f, 0xf6, 0x20, 0x42,\n 0x03, 0x7d, 0xc6, 0x11, 0x49, 0xaf, 0x2f, 0x51, 0x61, 0xd5, 0xc3, 0x6f, 0xdc,\n 0x5d, 0xc3, 0x01,\n]);\n\ndescribe(\"SetPluginCommand\", () => {\n describe(\"name\", () => {\n it(\"should be 'setPlugin'\", () => {\n const command = new SetPluginCommand({ payload: \"\" });\n expect(command.name).toBe(\"setPlugin\");\n });\n });\n\n describe(\"getApdu\", () => {\n it(\"returns the correct APDU\", () => {\n // GIVEN\n const args: SetPluginCommandArgs = {\n payload: SET_PLUGIN_COMMAND_PAYLOAD,\n };\n // WHEN\n const command = new SetPluginCommand(args);\n const apdu = command.getApdu();\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(SET_PLUGIN_COMMAND_APDU);\n });\n });\n describe(\"parseResponse\", () => {\n it.each`\n apduResponseCode | errorCode\n ${Uint8Array.from([0x69, 0x84])} | ${\"6984\"}\n ${Uint8Array.from([0x6d, 0x00])} | ${\"6d00\"}\n `(\n \"should return an error for the response status code $errorCode\",\n ({\n apduResponseCode,\n errorCode,\n }: Record<\"apduResponseCode\" | \"errorCode\", Uint8Array>) => {\n // GIVEN\n const response = new ApduResponse({\n data: Uint8Array.from([]),\n statusCode: apduResponseCode,\n });\n const command = new SetPluginCommand({ payload: \"\" });\n // WHEN\n const result = command.parseResponse(response);\n // THEN\n expect(isSuccessCommandResult(result)).toBe(false);\n if (!isSuccessCommandResult(result)) {\n expect(result.error).toBeInstanceOf(EthAppCommandError);\n if (result.error instanceof EthAppCommandError)\n expect(result.error.errorCode).toStrictEqual(errorCode);\n }\n },\n );\n\n it(\"should return success if the response status code is correct\", () => {\n // GIVEN\n const response: ApduResponse = {\n data: Buffer.from([]),\n statusCode: Buffer.from([0x90, 0x00]), // Success status code\n };\n // WHEN\n const command = new SetPluginCommand({ payload: \"\" });\n const result = command.parseResponse(response);\n // THEN\n expect(isSuccessCommandResult(result)).toBe(true);\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "aAAA,IAAAA,EAGO,2CAEPC,EAAmC,gCACnCC,EAGO,8BAEP,MAAMC,EACJ,yOAEIC,EAA0B,WAAW,KAAK,CAC9C,IAAM,GAAM,EAAM,EAAM,IAAM,EAAM,EAAM,EAAM,GAAM,GAAM,GAAM,GAAM,GACxE,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IACxE,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,EACxE,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAM,GAAM,GAAM,EACxE,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,EAAM,IAAM,IAAM,IAAM,IACxE,EAAM,IAAM,IAAM,EAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IACxE,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,GAAM,EAAM,IAAM,IAAM,GACxE,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GACxE,EAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IACxE,GAAM,IAAM,CACd,CAAC,EAED,SAAS,mBAAoB,IAAM,CACjC,SAAS,OAAQ,IAAM,CACrB,GAAG,wBAAyB,IAAM,CAChC,MAAMC,EAAU,IAAI,mBAAiB,CAAE,QAAS,EAAG,CAAC,EACpD,OAAOA,EAAQ,IAAI,EAAE,KAAK,WAAW,CACvC,CAAC,CACH,CAAC,EAED,SAAS,UAAW,IAAM,CACxB,GAAG,2BAA4B,IAAM,CAEnC,MAAMC,EAA6B,CACjC,QAASH,CACX,EAGMI,EADU,IAAI,mBAAiBD,CAAI,EACpB,QAAQ,EAE7B,OAAOC,EAAK,WAAW,CAAC,EAAE,cAAcH,CAAuB,CACjE,CAAC,CACH,CAAC,EACD,SAAS,gBAAiB,IAAM,CAC9B,GAAG;AAAA;AAAA,QAEC,WAAW,KAAK,CAAC,IAAM,GAAI,CAAC,CAAC,MAAM,MAAM;AAAA,QACzC,WAAW,KAAK,CAAC,IAAM,CAAI,CAAC,CAAC,MAAM,MAAM;AAAA,MAE3C,iEACA,CAAC,CACC,iBAAAI,EACA,UAAAC,CACF,IAA4D,CAE1D,MAAMC,EAAW,IAAI,eAAa,CAChC,KAAM,WAAW,KAAK,CAAC,CAAC,EACxB,WAAYF,CACd,CAAC,EAGKG,EAFU,IAAI,mBAAiB,CAAE,QAAS,EAAG,CAAC,EAE7B,cAAcD,CAAQ,EAE7C,UAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAK,KAC5C,0BAAuBA,CAAM,IAChC,OAAOA,EAAO,KAAK,EAAE,eAAe,oBAAkB,EAClDA,EAAO,iBAAiB,sBAC1B,OAAOA,EAAO,MAAM,SAAS,EAAE,cAAcF,CAAS,EAE5D,CACF,EAEA,GAAG,+DAAgE,IAAM,CAEvE,MAAMC,EAAyB,CAC7B,KAAM,OAAO,KAAK,CAAC,CAAC,EACpB,WAAY,OAAO,KAAK,CAAC,IAAM,CAAI,CAAC,CACtC,EAGMC,EADU,IAAI,mBAAiB,CAAE,QAAS,EAAG,CAAC,EAC7B,cAAcD,CAAQ,EAE7C,UAAO,0BAAuBC,CAAM,CAAC,EAAE,KAAK,EAAI,CAClD,CAAC,CACH,CAAC,CACH,CAAC",
|
|
6
|
+
"names": ["import_device_management_kit", "import_ethAppErrors", "import_SetPluginCommand", "SET_PLUGIN_COMMAND_PAYLOAD", "SET_PLUGIN_COMMAND_APDU", "command", "args", "apdu", "apduResponseCode", "errorCode", "response", "result"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var d=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var E=(e,r)=>{for(var
|
|
1
|
+
"use strict";var d=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var E=(e,r)=>{for(var o in r)d(e,o,{get:r[o],enumerable:!0})},l=(e,r,o,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of g(r))!A.call(e,n)&&n!==o&&d(e,n,{get:()=>r[n],enumerable:!(i=p(r,n))||i.enumerable});return e};var h=e=>l(d({},"__esModule",{value:!0}),e);var S={};E(S,{SignEIP7702AuthorizationCommand:()=>c});module.exports=h(S);var t=require("@ledgerhq/device-management-kit"),u=require("@ledgerhq/signer-utils"),a=require("purify-ts"),s=require("./utils/ethAppErrors");const y=32,C=32;class c{name="signEIP7702Authorization";args;errorHelper=new u.CommandErrorHelper(s.ETH_APP_ERRORS,s.EthAppCommandErrorFactory);constructor(r){this.args=r}getApdu(){const{data:r,isFirstChunk:o}=this.args,i={cla:224,ins:52,p1:o?1:0,p2:0};return new t.ApduBuilder(i).addBufferToData(r).build()}parseResponse(r){return a.Maybe.fromNullable(this.errorHelper.getError(r)).orDefaultLazy(()=>{const o=new t.ApduParser(r),i=o.extract8BitUInt();if(i===void 0)return(0,t.CommandResultFactory)({data:a.Nothing});const n=o.encodeToHexaString(o.extractFieldByLength(y),!0);if(!n)return(0,t.CommandResultFactory)({error:new t.InvalidStatusWordError("R is missing")});const m=o.encodeToHexaString(o.extractFieldByLength(C),!0);return m?(0,t.CommandResultFactory)({data:(0,a.Just)({r:n,s:m,v:i})}):(0,t.CommandResultFactory)({error:new t.InvalidStatusWordError("S is missing")})})}}0&&(module.exports={SignEIP7702AuthorizationCommand});
|
|
2
2
|
//# sourceMappingURL=SignAuthorizationDelegationCommand.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/command/SignAuthorizationDelegationCommand.ts"],
|
|
4
|
-
"sourcesContent": ["// https://github.com/LedgerHQ/app-ethereum/blob/develop/doc/ethapp.adoc#sign-eth-personal-message\nimport {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\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 { Just, Maybe, Nothing } from \"purify-ts\";\n\nimport { type Signature } from \"@api/model/Signature\";\n\nimport {\n ETH_APP_ERRORS,\n EthAppCommandErrorFactory,\n type EthErrorCodes,\n} from \"./utils/ethAppErrors\";\n\nconst R_LENGTH = 32;\nconst S_LENGTH = 32;\n\nexport type SignEIP7702AuthorizationCommandArgs = {\n /**\n * The data to sign in max 255 bytes chunks\n * Data is a concatenation of the following:\n * - Derivation path length (1 byte)\n * - Derivation path (4 bytes per element)\n * - Nonce (4 bytes)\n * - Chain ID (4 bytes)\n * - Address (20 bytes)\n */\n readonly data: Uint8Array;\n /**\n * If this is the first chunk of the message\n */\n readonly isFirstChunk: boolean;\n};\n\nexport type SignEIP7702AuthorizationCommandResponse = Maybe<Signature>;\n\nexport class SignEIP7702AuthorizationCommand\n implements\n Command<\n SignEIP7702AuthorizationCommandResponse,\n SignEIP7702AuthorizationCommandArgs,\n EthErrorCodes\n >\n{\n readonly args: SignEIP7702AuthorizationCommandArgs;\n private readonly errorHelper = new CommandErrorHelper<\n SignEIP7702AuthorizationCommandResponse,\n EthErrorCodes\n >(ETH_APP_ERRORS, EthAppCommandErrorFactory);\n\n constructor(args: SignEIP7702AuthorizationCommandArgs) {\n this.args = args;\n }\n\n getApdu(): Apdu {\n const { data, isFirstChunk } = this.args;\n const signEIP7702AuthorizationArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x34,\n p1: isFirstChunk ? 0x01 : 0x00,\n p2: 0x00,\n };\n\n return new ApduBuilder(signEIP7702AuthorizationArgs)\n .addBufferToData(data)\n .build();\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<SignEIP7702AuthorizationCommandResponse, EthErrorCodes> {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(apduResponse);\n\n // The data is returned only for the last chunk\n const v = parser.extract8BitUInt();\n if (v === undefined) {\n return CommandResultFactory({ data: Nothing });\n }\n\n const r = parser.encodeToHexaString(\n parser.extractFieldByLength(R_LENGTH),\n true,\n );\n if (!r) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"R is missing\"),\n });\n }\n\n const s = parser.encodeToHexaString(\n parser.extractFieldByLength(S_LENGTH),\n true,\n );\n if (!s) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"S is missing\"),\n });\n }\n\n return CommandResultFactory({\n data: Just({\n r,\n s,\n v,\n }),\n });\n });\n }\n}\n"],
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qCAAAE,IAAA,eAAAC,EAAAH,GACA,IAAAI,EAUO,2CACPC,EAAmC,kCACnCC,EAAqC,qBAIrCC,EAIO,gCAEP,MAAMC,EAAW,GACXC,EAAW,GAqBV,MAAMP,CAOb,CACW,KACQ,YAAc,IAAI,qBAGjC,iBAAgB,2BAAyB,EAE3C,YAAYQ,EAA2C,CACrD,KAAK,KAAOA,CACd,CAEA,SAAgB,CACd,KAAM,CAAE,KAAAC,EAAM,aAAAC,CAAa,EAAI,KAAK,KAC9BC,EAAgD,CACpD,IAAK,IACL,IAAK,GACL,GAAID,EAAe,EAAO,EAC1B,GAAI,CACN,EAEA,OAAO,IAAI,cAAYC,CAA4B,EAChD,gBAAgBF,CAAI,EACpB,MAAM,CACX,CAEA,cACEG,EACuE,CACvE,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAY,CACxC,EAAE,cAAc,IAAM,CACpB,MAAMC,EAAS,IAAI,aAAWD,CAAY,EAGpCE,EAAID,EAAO,gBAAgB,EACjC,GAAIC,IAAM,OACR,SAAO,wBAAqB,CAAE,KAAM,SAAQ,CAAC,EAG/C,MAAMC,EAAIF,EAAO,mBACfA,EAAO,qBAAqBP,CAAQ,EACpC,EACF,EACA,GAAI,CAACS,EACH,SAAO,wBAAqB,CAC1B,MAAO,IAAI,yBAAuB,cAAc,CAClD,CAAC,EAGH,MAAMC,EAAIH,EAAO,mBACfA,EAAO,qBAAqBN,CAAQ,EACpC,EACF,EACA,OAAKS,KAME,wBAAqB,CAC1B,QAAM,QAAK,CACT,EAAAD,EACA,EAAAC,EACA,EAAAF,CACF,CAAC,CACH,CAAC,KAXQ,wBAAqB,CAC1B,MAAO,IAAI,yBAAuB,cAAc,CAClD,CAAC,CAUL,CAAC,CACH,CACF",
|
|
4
|
+
"sourcesContent": ["// https://github.com/LedgerHQ/app-ethereum/blob/develop/doc/ethapp.adoc#sign-eth-personal-message\nimport {\n type Apdu,\n ApduBuilder,\n type ApduBuilderArgs,\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 { Just, Maybe, Nothing } from \"purify-ts\";\n\nimport { type Signature } from \"@api/model/Signature\";\n\nimport {\n ETH_APP_ERRORS,\n EthAppCommandErrorFactory,\n type EthErrorCodes,\n} from \"./utils/ethAppErrors\";\n\nconst R_LENGTH = 32;\nconst S_LENGTH = 32;\n\nexport type SignEIP7702AuthorizationCommandArgs = {\n /**\n * The data to sign in max 255 bytes chunks\n * Data is a concatenation of the following:\n * - Derivation path length (1 byte)\n * - Derivation path (4 bytes per element)\n * - Nonce (4 bytes)\n * - Chain ID (4 bytes)\n * - Address (20 bytes)\n */\n readonly data: Uint8Array;\n /**\n * If this is the first chunk of the message\n */\n readonly isFirstChunk: boolean;\n};\n\nexport type SignEIP7702AuthorizationCommandResponse = Maybe<Signature>;\n\nexport class SignEIP7702AuthorizationCommand\n implements\n Command<\n SignEIP7702AuthorizationCommandResponse,\n SignEIP7702AuthorizationCommandArgs,\n EthErrorCodes\n >\n{\n readonly name = \"signEIP7702Authorization\";\n readonly args: SignEIP7702AuthorizationCommandArgs;\n private readonly errorHelper = new CommandErrorHelper<\n SignEIP7702AuthorizationCommandResponse,\n EthErrorCodes\n >(ETH_APP_ERRORS, EthAppCommandErrorFactory);\n\n constructor(args: SignEIP7702AuthorizationCommandArgs) {\n this.args = args;\n }\n\n getApdu(): Apdu {\n const { data, isFirstChunk } = this.args;\n const signEIP7702AuthorizationArgs: ApduBuilderArgs = {\n cla: 0xe0,\n ins: 0x34,\n p1: isFirstChunk ? 0x01 : 0x00,\n p2: 0x00,\n };\n\n return new ApduBuilder(signEIP7702AuthorizationArgs)\n .addBufferToData(data)\n .build();\n }\n\n parseResponse(\n apduResponse: ApduResponse,\n ): CommandResult<SignEIP7702AuthorizationCommandResponse, EthErrorCodes> {\n return Maybe.fromNullable(\n this.errorHelper.getError(apduResponse),\n ).orDefaultLazy(() => {\n const parser = new ApduParser(apduResponse);\n\n // The data is returned only for the last chunk\n const v = parser.extract8BitUInt();\n if (v === undefined) {\n return CommandResultFactory({ data: Nothing });\n }\n\n const r = parser.encodeToHexaString(\n parser.extractFieldByLength(R_LENGTH),\n true,\n );\n if (!r) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"R is missing\"),\n });\n }\n\n const s = parser.encodeToHexaString(\n parser.extractFieldByLength(S_LENGTH),\n true,\n );\n if (!s) {\n return CommandResultFactory({\n error: new InvalidStatusWordError(\"S is missing\"),\n });\n }\n\n return CommandResultFactory({\n data: Just({\n r,\n s,\n v,\n }),\n });\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qCAAAE,IAAA,eAAAC,EAAAH,GACA,IAAAI,EAUO,2CACPC,EAAmC,kCACnCC,EAAqC,qBAIrCC,EAIO,gCAEP,MAAMC,EAAW,GACXC,EAAW,GAqBV,MAAMP,CAOb,CACW,KAAO,2BACP,KACQ,YAAc,IAAI,qBAGjC,iBAAgB,2BAAyB,EAE3C,YAAYQ,EAA2C,CACrD,KAAK,KAAOA,CACd,CAEA,SAAgB,CACd,KAAM,CAAE,KAAAC,EAAM,aAAAC,CAAa,EAAI,KAAK,KAC9BC,EAAgD,CACpD,IAAK,IACL,IAAK,GACL,GAAID,EAAe,EAAO,EAC1B,GAAI,CACN,EAEA,OAAO,IAAI,cAAYC,CAA4B,EAChD,gBAAgBF,CAAI,EACpB,MAAM,CACX,CAEA,cACEG,EACuE,CACvE,OAAO,QAAM,aACX,KAAK,YAAY,SAASA,CAAY,CACxC,EAAE,cAAc,IAAM,CACpB,MAAMC,EAAS,IAAI,aAAWD,CAAY,EAGpCE,EAAID,EAAO,gBAAgB,EACjC,GAAIC,IAAM,OACR,SAAO,wBAAqB,CAAE,KAAM,SAAQ,CAAC,EAG/C,MAAMC,EAAIF,EAAO,mBACfA,EAAO,qBAAqBP,CAAQ,EACpC,EACF,EACA,GAAI,CAACS,EACH,SAAO,wBAAqB,CAC1B,MAAO,IAAI,yBAAuB,cAAc,CAClD,CAAC,EAGH,MAAMC,EAAIH,EAAO,mBACfA,EAAO,qBAAqBN,CAAQ,EACpC,EACF,EACA,OAAKS,KAME,wBAAqB,CAC1B,QAAM,QAAK,CACT,EAAAD,EACA,EAAAC,EACA,EAAAF,CACF,CAAC,CACH,CAAC,KAXQ,wBAAqB,CAC1B,MAAO,IAAI,yBAAuB,cAAc,CAClD,CAAC,CAUL,CAAC,CACH,CACF",
|
|
6
6
|
"names": ["SignAuthorizationDelegationCommand_exports", "__export", "SignEIP7702AuthorizationCommand", "__toCommonJS", "import_device_management_kit", "import_signer_utils", "import_purify_ts", "import_ethAppErrors", "R_LENGTH", "S_LENGTH", "args", "data", "isFirstChunk", "signEIP7702AuthorizationArgs", "apduResponse", "parser", "v", "r", "s"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var s=require("@ledgerhq/device-management-kit"),
|
|
1
|
+
"use strict";var s=require("@ledgerhq/device-management-kit"),o=require("purify-ts"),r=require("./SignAuthorizationDelegationCommand");const a=Uint8Array.from([224,52,1,0,8,0,6,76,101,100,103,101,114]),c=Uint8Array.from([224,52,0,0,8,0,6,76,101,100,103,101,114]),x=new Uint8Array([27,151,164,202,143,105,70,51,89,38,1,245,162,62,11,204,85,60,157,10,144,211,163,66,45,87,85,8,169,40,152,185,110,105,80,208,46,116,233,193,2,193,100,162,37,83,48,130,202,189,216,144,239,196,99,246,127,96,206,254,140,63,135,207,206]);describe("SignEIP7702AuthorizationCommand",()=>{describe("name",()=>{it("should be 'signEIP7702Authorization'",()=>{const t=new r.SignEIP7702AuthorizationCommand({data:new Uint8Array,isFirstChunk:!0});expect(t.name).toBe("signEIP7702Authorization")})}),describe("getApdu",()=>{it("should return the first chunk raw APDU",()=>{const t={data:a.slice(5),isFirstChunk:!0},e=new r.SignEIP7702AuthorizationCommand(t).getApdu();expect(e.getRawApdu()).toStrictEqual(a)}),it("should return the next chunk raw APDU",()=>{const t={data:a.slice(5),isFirstChunk:!1},e=new r.SignEIP7702AuthorizationCommand(t).getApdu();expect(e.getRawApdu()).toStrictEqual(c)})}),describe("parseResponse",()=>{it("should return an error if the response status code is invalid",()=>{const t={data:Buffer.from([]),statusCode:Buffer.from([106,128])},e=new r.SignEIP7702AuthorizationCommand({data:Uint8Array.from([]),isFirstChunk:!0}).parseResponse(t);expect((0,s.isSuccessCommandResult)(e)).toBe(!1)}),it("should return success without result for first chunk",()=>{const t={statusCode:Buffer.from([144,0]),data:Buffer.from([])},e=new r.SignEIP7702AuthorizationCommand({data:Uint8Array.from([]),isFirstChunk:!0}).parseResponse(t);expect(e).toStrictEqual((0,s.CommandResultFactory)({data:o.Nothing}))}),it("should return success if the response signature is valid",()=>{const t={statusCode:Buffer.from([144,0]),data:x},e=new r.SignEIP7702AuthorizationCommand({data:Uint8Array.from([]),isFirstChunk:!0}).parseResponse(t);expect(e).toStrictEqual((0,s.CommandResultFactory)({data:(0,o.Just)({r:"0x97a4ca8f694633592601f5a23e0bcc553c9d0a90d3a3422d575508a92898b96e",s:"0x6950d02e74e9c102c164a225533082cabdd890efc463f67f60cefe8c3f87cfce",v:27})}))}),it("should return an error if r is missing",()=>{const t={statusCode:Buffer.from([144,0]),data:x.slice(0,32)},e=new r.SignEIP7702AuthorizationCommand({data:Uint8Array.from([]),isFirstChunk:!0}).parseResponse(t);expect(e).toStrictEqual((0,s.CommandResultFactory)({error:new s.InvalidStatusWordError("R is missing")}))}),it("should return an error if s is missing",()=>{const t={statusCode:Buffer.from([144,0]),data:x.slice(0,64)},e=new r.SignEIP7702AuthorizationCommand({data:Uint8Array.from([]),isFirstChunk:!0}).parseResponse(t);expect(e).toStrictEqual((0,s.CommandResultFactory)({error:new s.InvalidStatusWordError("S is missing")}))})})});
|
|
2
2
|
//# sourceMappingURL=SignAuthorizationDelegationCommand.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/internal/app-binder/command/SignAuthorizationDelegationCommand.test.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n type ApduResponse,\n CommandResultFactory,\n InvalidStatusWordError,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { Just, Nothing } from \"purify-ts\";\n\nimport {\n SignEIP7702AuthorizationCommand,\n type SignEIP7702AuthorizationCommandArgs,\n} from \"./SignAuthorizationDelegationCommand\";\n\nconst FIRST_CHUNK_APDU = Uint8Array.from([\n 0xe0, 0x34, 0x01, 0x00, 0x08, 0x00, 0x06, 0x4c, 0x65, 0x64, 0x67, 0x65, 0x72,\n]);\n\nconst NEXT_CHUNK_APDU = Uint8Array.from([\n 0xe0, 0x34, 0x00, 0x00, 0x08, 0x00, 0x06, 0x4c, 0x65, 0x64, 0x67, 0x65, 0x72,\n]);\n\nconst SUCCESS_RESPONSE = new Uint8Array([\n 0x1b, 0x97, 0xa4, 0xca, 0x8f, 0x69, 0x46, 0x33, 0x59, 0x26, 0x01, 0xf5, 0xa2,\n 0x3e, 0x0b, 0xcc, 0x55, 0x3c, 0x9d, 0x0a, 0x90, 0xd3, 0xa3, 0x42, 0x2d, 0x57,\n 0x55, 0x08, 0xa9, 0x28, 0x98, 0xb9, 0x6e, 0x69, 0x50, 0xd0, 0x2e, 0x74, 0xe9,\n 0xc1, 0x02, 0xc1, 0x64, 0xa2, 0x25, 0x53, 0x30, 0x82, 0xca, 0xbd, 0xd8, 0x90,\n 0xef, 0xc4, 0x63, 0xf6, 0x7f, 0x60, 0xce, 0xfe, 0x8c, 0x3f, 0x87, 0xcf, 0xce,\n]);\n\ndescribe(\"SignEIP7702AuthorizationCommand\", () => {\n describe(\"getApdu\", () => {\n it(\"should return the first chunk raw APDU\", () => {\n // GIVEN\n const args: SignEIP7702AuthorizationCommandArgs = {\n data: FIRST_CHUNK_APDU.slice(5),\n isFirstChunk: true,\n };\n // WHEN\n const command = new SignEIP7702AuthorizationCommand(args);\n const apdu = command.getApdu();\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(FIRST_CHUNK_APDU);\n });\n\n it(\"should return the next chunk raw APDU\", () => {\n // GIVEN\n const args: SignEIP7702AuthorizationCommandArgs = {\n data: FIRST_CHUNK_APDU.slice(5),\n isFirstChunk: false,\n };\n // WHEN\n const command = new SignEIP7702AuthorizationCommand(args);\n const apdu = command.getApdu();\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(NEXT_CHUNK_APDU);\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should return an error if the response status code is invalid\", () => {\n // GIVEN\n const response: ApduResponse = {\n data: Buffer.from([]),\n statusCode: Buffer.from([0x6a, 0x80]), // Invalid status code\n };\n // WHEN\n const command = new SignEIP7702AuthorizationCommand({\n data: Uint8Array.from([]),\n isFirstChunk: true,\n });\n const result = command.parseResponse(response);\n // THEN\n expect(isSuccessCommandResult(result)).toBe(false);\n });\n\n it(\"should return success without result for first chunk\", () => {\n // GIVEN\n const response: ApduResponse = {\n statusCode: Buffer.from([0x90, 0x00]), // Success status code\n data: Buffer.from([]),\n };\n // WHEN\n const command = new SignEIP7702AuthorizationCommand({\n data: Uint8Array.from([]),\n isFirstChunk: true,\n });\n const result = command.parseResponse(response);\n // THEN\n expect(result).toStrictEqual(\n CommandResultFactory({\n data: Nothing,\n }),\n );\n });\n\n it(\"should return success if the response signature is valid\", () => {\n // GIVEN\n const response: ApduResponse = {\n statusCode: Buffer.from([0x90, 0x00]), // Success status code\n data: SUCCESS_RESPONSE,\n };\n // WHEN\n const command = new SignEIP7702AuthorizationCommand({\n data: Uint8Array.from([]),\n isFirstChunk: true,\n });\n const result = command.parseResponse(response);\n // THEN\n expect(result).toStrictEqual(\n CommandResultFactory({\n data: Just({\n r: \"0x97a4ca8f694633592601f5a23e0bcc553c9d0a90d3a3422d575508a92898b96e\",\n s: \"0x6950d02e74e9c102c164a225533082cabdd890efc463f67f60cefe8c3f87cfce\",\n v: 27,\n }),\n }),\n );\n });\n\n it(\"should return an error if r is missing\", () => {\n // GIVEN\n const response: ApduResponse = {\n statusCode: Buffer.from([0x90, 0x00]), // Success status code\n data: SUCCESS_RESPONSE.slice(0, 32),\n };\n // WHEN\n const command = new SignEIP7702AuthorizationCommand({\n data: Uint8Array.from([]),\n isFirstChunk: true,\n });\n const result = command.parseResponse(response);\n // THEN\n expect(result).toStrictEqual(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"R is missing\"),\n }),\n );\n });\n\n it(\"should return an error if s is missing\", () => {\n // GIVEN\n const response: ApduResponse = {\n statusCode: Buffer.from([0x90, 0x00]), // Success status code\n data: SUCCESS_RESPONSE.slice(0, 64),\n };\n // WHEN\n const command = new SignEIP7702AuthorizationCommand({\n data: Uint8Array.from([]),\n isFirstChunk: true,\n });\n const result = command.parseResponse(response);\n // THEN\n expect(result).toStrictEqual(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"S is missing\"),\n }),\n );\n });\n });\n});\n"],
|
|
5
|
-
"mappings": "aAAA,IAAAA,EAKO,2CACPC,EAA8B,qBAE9BC,EAGO,gDAEP,MAAMC,EAAmB,WAAW,KAAK,CACvC,IAAM,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAC1E,CAAC,EAEKC,EAAkB,WAAW,KAAK,CACtC,IAAM,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAC1E,CAAC,EAEKC,EAAmB,IAAI,WAAW,CACtC,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,EAAM,IAAM,IACxE,GAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GACxE,GAAM,EAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IACxE,IAAM,EAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IACxE,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAC1E,CAAC,EAED,SAAS,kCAAmC,IAAM,CAChD,SAAS,UAAW,IAAM,CACxB,GAAG,yCAA0C,IAAM,CAEjD,MAAMC,EAA4C,CAChD,
|
|
6
|
-
"names": ["import_device_management_kit", "import_purify_ts", "import_SignAuthorizationDelegationCommand", "FIRST_CHUNK_APDU", "NEXT_CHUNK_APDU", "SUCCESS_RESPONSE", "args", "apdu", "response", "result"]
|
|
4
|
+
"sourcesContent": ["import {\n type ApduResponse,\n CommandResultFactory,\n InvalidStatusWordError,\n isSuccessCommandResult,\n} from \"@ledgerhq/device-management-kit\";\nimport { Just, Nothing } from \"purify-ts\";\n\nimport {\n SignEIP7702AuthorizationCommand,\n type SignEIP7702AuthorizationCommandArgs,\n} from \"./SignAuthorizationDelegationCommand\";\n\nconst FIRST_CHUNK_APDU = Uint8Array.from([\n 0xe0, 0x34, 0x01, 0x00, 0x08, 0x00, 0x06, 0x4c, 0x65, 0x64, 0x67, 0x65, 0x72,\n]);\n\nconst NEXT_CHUNK_APDU = Uint8Array.from([\n 0xe0, 0x34, 0x00, 0x00, 0x08, 0x00, 0x06, 0x4c, 0x65, 0x64, 0x67, 0x65, 0x72,\n]);\n\nconst SUCCESS_RESPONSE = new Uint8Array([\n 0x1b, 0x97, 0xa4, 0xca, 0x8f, 0x69, 0x46, 0x33, 0x59, 0x26, 0x01, 0xf5, 0xa2,\n 0x3e, 0x0b, 0xcc, 0x55, 0x3c, 0x9d, 0x0a, 0x90, 0xd3, 0xa3, 0x42, 0x2d, 0x57,\n 0x55, 0x08, 0xa9, 0x28, 0x98, 0xb9, 0x6e, 0x69, 0x50, 0xd0, 0x2e, 0x74, 0xe9,\n 0xc1, 0x02, 0xc1, 0x64, 0xa2, 0x25, 0x53, 0x30, 0x82, 0xca, 0xbd, 0xd8, 0x90,\n 0xef, 0xc4, 0x63, 0xf6, 0x7f, 0x60, 0xce, 0xfe, 0x8c, 0x3f, 0x87, 0xcf, 0xce,\n]);\n\ndescribe(\"SignEIP7702AuthorizationCommand\", () => {\n describe(\"name\", () => {\n it(\"should be 'signEIP7702Authorization'\", () => {\n const command = new SignEIP7702AuthorizationCommand({\n data: new Uint8Array(),\n isFirstChunk: true,\n });\n expect(command.name).toBe(\"signEIP7702Authorization\");\n });\n });\n\n describe(\"getApdu\", () => {\n it(\"should return the first chunk raw APDU\", () => {\n // GIVEN\n const args: SignEIP7702AuthorizationCommandArgs = {\n data: FIRST_CHUNK_APDU.slice(5),\n isFirstChunk: true,\n };\n // WHEN\n const command = new SignEIP7702AuthorizationCommand(args);\n const apdu = command.getApdu();\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(FIRST_CHUNK_APDU);\n });\n\n it(\"should return the next chunk raw APDU\", () => {\n // GIVEN\n const args: SignEIP7702AuthorizationCommandArgs = {\n data: FIRST_CHUNK_APDU.slice(5),\n isFirstChunk: false,\n };\n // WHEN\n const command = new SignEIP7702AuthorizationCommand(args);\n const apdu = command.getApdu();\n // THEN\n expect(apdu.getRawApdu()).toStrictEqual(NEXT_CHUNK_APDU);\n });\n });\n\n describe(\"parseResponse\", () => {\n it(\"should return an error if the response status code is invalid\", () => {\n // GIVEN\n const response: ApduResponse = {\n data: Buffer.from([]),\n statusCode: Buffer.from([0x6a, 0x80]), // Invalid status code\n };\n // WHEN\n const command = new SignEIP7702AuthorizationCommand({\n data: Uint8Array.from([]),\n isFirstChunk: true,\n });\n const result = command.parseResponse(response);\n // THEN\n expect(isSuccessCommandResult(result)).toBe(false);\n });\n\n it(\"should return success without result for first chunk\", () => {\n // GIVEN\n const response: ApduResponse = {\n statusCode: Buffer.from([0x90, 0x00]), // Success status code\n data: Buffer.from([]),\n };\n // WHEN\n const command = new SignEIP7702AuthorizationCommand({\n data: Uint8Array.from([]),\n isFirstChunk: true,\n });\n const result = command.parseResponse(response);\n // THEN\n expect(result).toStrictEqual(\n CommandResultFactory({\n data: Nothing,\n }),\n );\n });\n\n it(\"should return success if the response signature is valid\", () => {\n // GIVEN\n const response: ApduResponse = {\n statusCode: Buffer.from([0x90, 0x00]), // Success status code\n data: SUCCESS_RESPONSE,\n };\n // WHEN\n const command = new SignEIP7702AuthorizationCommand({\n data: Uint8Array.from([]),\n isFirstChunk: true,\n });\n const result = command.parseResponse(response);\n // THEN\n expect(result).toStrictEqual(\n CommandResultFactory({\n data: Just({\n r: \"0x97a4ca8f694633592601f5a23e0bcc553c9d0a90d3a3422d575508a92898b96e\",\n s: \"0x6950d02e74e9c102c164a225533082cabdd890efc463f67f60cefe8c3f87cfce\",\n v: 27,\n }),\n }),\n );\n });\n\n it(\"should return an error if r is missing\", () => {\n // GIVEN\n const response: ApduResponse = {\n statusCode: Buffer.from([0x90, 0x00]), // Success status code\n data: SUCCESS_RESPONSE.slice(0, 32),\n };\n // WHEN\n const command = new SignEIP7702AuthorizationCommand({\n data: Uint8Array.from([]),\n isFirstChunk: true,\n });\n const result = command.parseResponse(response);\n // THEN\n expect(result).toStrictEqual(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"R is missing\"),\n }),\n );\n });\n\n it(\"should return an error if s is missing\", () => {\n // GIVEN\n const response: ApduResponse = {\n statusCode: Buffer.from([0x90, 0x00]), // Success status code\n data: SUCCESS_RESPONSE.slice(0, 64),\n };\n // WHEN\n const command = new SignEIP7702AuthorizationCommand({\n data: Uint8Array.from([]),\n isFirstChunk: true,\n });\n const result = command.parseResponse(response);\n // THEN\n expect(result).toStrictEqual(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"S is missing\"),\n }),\n );\n });\n });\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_device_management_kit", "import_purify_ts", "import_SignAuthorizationDelegationCommand", "FIRST_CHUNK_APDU", "NEXT_CHUNK_APDU", "SUCCESS_RESPONSE", "command", "args", "apdu", "response", "result"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var p=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var y=(o,r)=>{for(var e in r)p(o,e,{get:r[e],enumerable:!0})},A=(o,r,e,
|
|
1
|
+
"use strict";var p=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var y=(o,r)=>{for(var e in r)p(o,e,{get:r[e],enumerable:!0})},A=(o,r,e,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of E(r))!c.call(o,n)&&n!==e&&p(o,n,{get:()=>r[n],enumerable:!(s=l(r,n))||s.enumerable});return o};var C=o=>A(p({},"__esModule",{value:!0}),o);var x={};y(x,{SignEIP712Command:()=>h});module.exports=C(x);var t=require("@ledgerhq/device-management-kit"),i=require("@ledgerhq/signer-utils"),g=require("purify-ts"),d=require("./utils/ethAppErrors");const S=32,P=32;class h{constructor(r){this.args=r}name="signEIP712";errorHelper=new i.CommandErrorHelper(d.ETH_APP_ERRORS,d.EthAppCommandErrorFactory);getApdu(){const{derivationPath:r,legacyArgs:e}=this.args,s={cla:224,ins:12,p1:0,p2:e.isJust()?0:1},n=i.DerivationPathUtils.splitPath(r),a=new t.ApduBuilder(s);a.add8BitUIntToData(n.length);for(const m of n)a.add32BitUIntToData(m);return e.ifJust(({domainHash:m,messageHash:u})=>{a.addHexaStringToData(m),a.addHexaStringToData(u)}),a.build()}parseResponse(r){return g.Maybe.fromNullable(this.errorHelper.getError(r)).orDefaultLazy(()=>{const e=new t.ApduParser(r),s=e.extract8BitUInt();if(s===void 0)return(0,t.CommandResultFactory)({error:new t.InvalidStatusWordError("V is missing")});const n=e.encodeToHexaString(e.extractFieldByLength(S),!0);if(!n)return(0,t.CommandResultFactory)({error:new t.InvalidStatusWordError("R is missing")});const a=e.encodeToHexaString(e.extractFieldByLength(P),!0);return a?(0,t.CommandResultFactory)({data:{r:n,s:a,v:s}}):(0,t.CommandResultFactory)({error:new t.InvalidStatusWordError("S is missing")})})}}0&&(module.exports={SignEIP712Command});
|
|
2
2
|
//# sourceMappingURL=SignEIP712Command.js.map
|