@ledgerhq/types-live
Ledger Live main types.
API
Table of Contents
TokenAccount
A token belongs to an Account and share the parent account address
Type: {type: "TokenAccount"
, id: string, parentId: string, token: TokenCurrency, balance: BigNumber, spendableBalance: BigNumber, creationDate: Date, operationsCount: number, operations: Array<Operation>, pendingOperations: Array<Operation>, starred: boolean, balanceHistoryCache: BalanceHistoryCache, swapHistory: Array<SwapOperation>, approvals: Array<{sender: string, value: string}>?}
Properties
Address
Type: {address: string, derivationPath: string}
Properties
Account
Account type is the main level account of a blockchain currency.
Each family maybe need an extra field, to solve this, you can have some subtyping like this:
export type BitcoinAccount = Account & { bitcoinResources: BitcoinResources }
and all parts where we would need it, we would need to cast,
const bitcoinAccount = account as BitcoinAccount;
and that BitcoinAccount type would be part of a coin integration family specific indeed.
Type: {type: "Account"
, id: string, seedIdentifier: string, xpub: string?, derivationMode: DerivationMode, index: number, freshAddress: string, freshAddressPath: string, name: string, starred: boolean, used: boolean, balance: BigNumber, spendableBalance: BigNumber, creationDate: Date, blockHeight: number, currency: CryptoCurrency, feesCurrency: (CryptoCurrency | TokenCurrency)?, unit: Unit, operationsCount: number, operations: Array<Operation>, pendingOperations: Array<Operation>, lastSyncDate: Date, subAccounts: Array<TokenAccount>?, balanceHistoryCache: BalanceHistoryCache, swapHistory: Array<SwapOperation>, syncHash: string?, nfts: Array<ProtoNFT>?}
Properties
SubAccount
deprecated use TokenAccount instead
Type: TokenAccount
AccountLike
One of the Account type
Type: (Account | TokenAccount)
AccountLikeArray
An array of AccountLikes
Type: (Array<AccountLike> | Array<TokenAccount> | Array<Account>)
TokenAccountRaw
Type: {type: "TokenAccountRaw"
, id: string, starred: boolean?, parentId: string, tokenId: string, creationDate: string?, operationsCount: number?, operations: Array<OperationRaw>, pendingOperations: Array<OperationRaw>, balance: string, spendableBalance: string?, balanceHistoryCache: BalanceHistoryCache?, swapHistory: Array<SwapOperationRaw>?, approvals: Array<{sender: string, value: string}>?}
Properties
AccountRaw
Type: {id: string, seedIdentifier: string, xpub: string?, derivationMode: DerivationMode, index: number, freshAddress: string, freshAddressPath: string, name: string, starred: boolean?, used: boolean?, balance: string, spendableBalance: string?, blockHeight: number, creationDate: string?, operationsCount: number?, currencyId: string, feesCurrencyId: string?, operations: Array<OperationRaw>, pendingOperations: Array<OperationRaw>, unitMagnitude: number, lastSyncDate: string, subAccounts: Array<TokenAccountRaw>?, balanceHistoryCache: BalanceHistoryCache?, swapHistory: Array<SwapOperationRaw>?, syncHash: string?, nfts: Array<ProtoNFTRaw>?}
Properties
AccountRawLike
Type: (AccountRaw | TokenAccountRaw)
AccountIdParams
Type: {type: string, version: string, currencyId: string, xpubOrAddress: string, derivationMode: DerivationMode}
Properties
ScanAccountEventRaw
More events will come in the future
Type: {type: "discovered"
, account: AccountRaw}
Properties
DeviceId
Unique identifier of a device. It will depend on the underlying implementation.
Type: string
PreloadStrategy
Type: Partial<{preloadMaxAge: number}>
BroadcastArg
Type: {account: Account, signedOperation: SignedOperation}
Properties
SignOperationArg0
Type: {account: Account, transaction: T, deviceId: DeviceId}
Properties
SignOperationFnSignature
Type: function (arg0: SignOperationArg0<T>): Observable<SignOperationEvent>
CurrencyBridge
Abstraction related to a currency
AccountBridge
Abstraction related to an account
assignToAccountRaw
This function mutates the 'accountRaw' object in-place to add any extra fields that the coin may need to set.
It is called during the serialization mechanism, for instance bitcoinResources need to be serialized.
Type: function (account: Account, accountRaw: AccountRaw): void
Parameters
account
Account The original account object.accountRaw
AccountRaw The account in its serialized form.
assignFromAccountRaw
This function mutates the 'account' object in-place to add any extra fields that the coin may need to set.
It is called during the deserialization mechanism, for instance bitcoinResources need to be deserialized.
Type: function (accountRaw: AccountRaw, account: Account): void
Parameters
accountRaw
AccountRaw The account in its serialized form.account
Account The original account object.
initAccount
This function mutates the 'account' object to extend it with any extra fields of the coin.
For instance bitcoinResources needs to be created.
Type: function (account: Account): void
Parameters
account
Account The original account object to mutates in-place.
CurrenciesData
Type: {FIXME_ignoreAccountFields: Array<string>?, FIXME_ignoreOperationFields: Array<string>?, FIXME_ignorePreloadFields: (Array<string> | true
)?, IgnorePrepareTransactionFields: Array<string>?, mockDeviceOptions: any?, scanAccounts: Array<{name: string, apdus: string, unstableAccounts: boolean?, test: function (expect: ExpectFn, scanned: Array<Account>, bridge: CurrencyBridge): any?}>?, accounts: Array<AccountTestData<T>>?, test: function (arg0: ExpectFn, arg1: CurrencyBridge): any?}
Properties
DatasetTest
Type: {implementations: Array<string>, currencies: (Record<CryptoCurrencyIds, CurrenciesData<T>> | Record<string, never>)}
Properties
DerivationMode
DerivationMode is a string identifier of a specific derivation scheme in a list defined in live-common derivation.ts
Type: (""
| "ethM"
| "ethMM"
| "bch_on_bitcoin_segwit"
| "legacy_on_bch"
| "vertcoin_128"
| "vertcoin_128_segwit"
| "etcM"
| "aeternity"
| "tezbox"
| "tezosbip44h"
| "galleonL"
| "tezboxL"
| "taproot"
| "native_segwit"
| "segwit"
| "segwit_on_legacy"
| "legacy_on_segwit"
| "legacy_on_native_segwit"
| "segwit_unsplit"
| "sep5"
| "unsplit"
| "polkadotbip44"
| "glifLegacy"
| "glif"
| "filecoinBIP44"
| "casper_wallet"
| "solanaMain"
| "solanaSub"
| "hederaBip44"
| "cardano"
| "nearbip44h"
| "vechain"
| "internet_computer"
| "stacks_wallet"
)
Feature
Feature type.
Type: {enabled: boolean, desktop_version: string?, mobile_version: string?, enabledOverriddenForCurrentVersion: boolean?, languages_whitelisted: Array<string>?, languages_blacklisted: Array<string>?, enabledOverriddenForCurrentLanguage: boolean?, overridesRemote: boolean?, overriddenByEnv: boolean?, params: T?}
Properties
enabled
If false, the feature is disabled (for every languages regardless of the languages_whitelisted option)
Type: boolean
desktop_version
The desktop_version
option is desktop specific, it has no impact on mobile
If set, the feature is disabled when the desktop app version does not satisfies this param
It should respect the semantic versioning specification (https://semver.org/)
Type: string
mobile_version
The mobile_version
option is mobile specific, it has no impact on mobile
If set, the feature is disabled when the mobile app version does not satisfies this param
It should respect the semantic versioning specification (https://semver.org/)
Type: string
enabledOverriddenForCurrentVersion
Whether the remote value of enabled
was overriden due to desktop_version
or mobile_version
Type: boolean
languages_whitelisted
You can optionnally use one of the two following options (languages_whitelisted and languages_blacklisted) (Only implemented on mobile for now)
List of languages for which the feature is enabled (it will be disabled by default for all of the others)
Type: Array<string>
languages_blacklisted
List of languages for which the feature is disabled
Type: Array<string>
enabledOverriddenForCurrentLanguage
Whether the remote value of enabled
was overriden due to languages_whitelisted
or languages_blacklisted
Type: boolean
overridesRemote
Whether the remote value of this object was overriden locally
Type: boolean
overriddenByEnv
Whether the remote value of this object was overriden by an environment variable
Type: boolean
params
Additional params
Type: T
DefaultFeature
Default Feature type.
Type: Feature<any>
CurrencyFeatures
Currency Features type.
Type: {currencyAvalancheCChain: DefaultFeature, currencyStacks: DefaultFeature, currencyOptimism: DefaultFeature, currencyOptimismSepolia: DefaultFeature, currencyArbitrum: DefaultFeature, currencyArbitrumSepolia: DefaultFeature, currencyRsk: DefaultFeature, currencyBittorrent: DefaultFeature, currencyEnergyWeb: DefaultFeature, currencyAstar: DefaultFeature, currencyMetis: DefaultFeature, currencyBoba: DefaultFeature, currencyMoonriver: DefaultFeature, currencyVelasEvm: DefaultFeature, currencySyscoin: DefaultFeature, currencyAxelar: DefaultFeature, currencySecretNetwork: DefaultFeature, currencySeiNetwork: DefaultFeature, currencyDesmos: DefaultFeature, currencyDydx: DefaultFeature, currencyUmee: DefaultFeature, currencyStargaze: DefaultFeature, currencyOnomy: DefaultFeature, currencyPersistence: DefaultFeature, currencyQuicksilver: DefaultFeature, currencyInternetComputer: DefaultFeature, currencyInjective: DefaultFeature, currencyTelosEvm: DefaultFeature, currencyCoreum: DefaultFeature, currencyPolygonZkEvm: DefaultFeature, currencyPolygonZkEvmTestnet: DefaultFeature, currencyBase: DefaultFeature, currencyBaseSepolia: DefaultFeature, currencyKlaytn: DefaultFeature, currencyVechain: DefaultFeature, currencyCasper: DefaultFeature, currencyNeonEvm: DefaultFeature, currencyLukso: DefaultFeature, currencyLinea: DefaultFeature, currencyLineaTesnet: DefaultFeature}
Properties
Features
Features type.
Type: any
FeatureId
FeatureId type.
Type: any
Feature_EthStakingProviders
Features types.
Type: Feature<{listProvider: Array<{id: string, name: string, liveAppId: string, supportLink: string?, icon: string?, queryParams: Record<string, string>?}>}>
FeatureMap
Utils types.
Type: any
LedgerScriptParams
Type: {firmware: string, firmwareKey: string, delete: string?, deleteKey: string?, targetId: (string | number)?, hash: string, perso: string}
Properties
DeviceInfo
Type: {mcuVersion: string, version: string, majMin: string, targetId: (string | number), isBootloader: boolean, isRecoveryMode: boolean?, isOSU: boolean, providerName: (string | null | undefined), managerAllowed: boolean, pinValidated: boolean, seVersion: string?, mcuBlVersion: string?, mcuTargetId: number?, seTargetId: number?, onboarded: boolean?, hasDevFirmware: boolean?, bootloaderVersion: string?, hardwareVersion: number?, languageId: number?}
Properties
DeviceModelInfo
Type: {modelId: DeviceModelId, deviceInfo: DeviceInfo, apps: Array<{name: string, version: string}>}
Properties
DeviceVersion
Type: {id: Id, name: string, display_name: string, target_id: string, description: string, device: Id, providers: Array<Id>, mcu_versions: Array<Id>, se_firmware_final_versions: Array<Id>, osu_versions: Array<Id>, application_versions: Array<Id>, date_creation: string, date_last_modified: string}
Properties
McuVersion
Type: {id: Id, mcu: Id, name: string, description: (string | null | undefined), providers: Array<Id>, from_bootloader_version: string, device_versions: Array<Id>, se_firmware_final_versions: Array<Id>, date_creation: string, date_last_modified: string}
Properties
SeedPhraseType
FirmwareInfo
Type: {isBootloader: boolean, rawVersion: string, targetId: number, seVersion: string?, mcuVersion: string, mcuBlVersion: string?, mcuTargetId: number?, seTargetId: number?, flags: Buffer, bootloaderVersion: string?, hardwareVersion: number?, languageId: number?}
Properties
OsuFirmware
Type: any
FinalFirmware
Type: any
FirmwareUpdateContext
Type: {osu: OsuFirmware, final: FinalFirmware, shouldFlashMCU: boolean}
Properties
ApplicationVersion
Type: {id: Id, name: string, version: string, app: Id, description: (string | null | undefined), display_name: string, icon: string, notes: (string | null | undefined), perso: string, hash: string, firmware: string, firmware_key: string, delete: string, delete_key: string, device_versions: Array<Id>, se_firmware_final_versions: Array<Id>, providers: Array<Id>, date_creation: string, date_last_modified: string, type: AppType?, bytes: (number | null | undefined), warning: (string | null | undefined), currency: CryptoCurrency?}
Properties
Application
Type: {id: Id, name: string, description: (string | null | undefined), application_versions: Array<ApplicationVersion>, providers: Array<Id>, category: Id, publisher: (Id | null | undefined), date_creation: string, date_last_modified: string, currencyId: (string | null | undefined), authorName: (string | null | undefined), supportURL: (string | null | undefined), contactURL: (string | null | undefined), sourceURL: (string | null | undefined)}
Properties
AppType
App
App is higher level on top of Application and ApplicationVersion
with all fields Live needs and in normalized form (but still serializable)
Type: {id: Id, name: string, displayName: string, version: string, currencyId: (string | null | undefined), description: (string | null | undefined), dateModified: string, icon: string, authorName: (string | null | undefined), supportURL: (string | null | undefined), contactURL: (string | null | undefined), sourceURL: (string | null | undefined), hash: string, perso: string, firmware: string, firmware_key: string, delete: string, delete_key: string, dependencies: Array<string>, bytes: (number | null | undefined), warning: (string | null | undefined), indexOfMarketCap: number, isDevTools: boolean, type: AppType}
Properties
Category
Type: {id: Id, name: string, description: (string | null | undefined), providers: Array<Id>, applications: Array<Id>, date_creation: string, date_last_modified: string}
Properties
SocketEvent
Type: ({type: "bulk-progress"
, progress: number, index: number, total: number} | {type: "result"
, payload: any} | {type: "warning"
, message: string} | {type: "device-permission-requested"
} | {type: "device-permission-granted"
} | {type: "exchange-before"
, nonce: number, apdu: Buffer} | {type: "exchange"
, nonce: number, apdu: Buffer, data: Buffer, status: number} | {type: "opened"
} | {type: "closed"
})
NFTStandard
Type: ("ERC721"
| "ERC1155"
)
NFTMediaSize
Type: ("preview"
| "big"
| "original"
)
NFTMedias
Type: Record<NFTMediaSize, {uri: string, mediaType: string}>
NFTMetadata
Type: {tokenName: (string | null), nftName: (string | null), medias: NFTMedias, description: (string | null), properties: Array<Record<("key"
| "value"
), string>>, links: Record<NFTMetadataLinksProviders, string>, staxImage: string?}
Properties
NFTCollectionMetadata
Type: {tokenName: (string | null)}
Properties
ProtoNFT
Type: {id: string, tokenId: string, amount: BigNumber, contract: string, standard: NFTStandard, currencyId: CryptoCurrencyIds, metadata: NFTMetadata?}
Properties
ProtoNFTRaw
Type: any
NFT
Type: any
NFTMetadataLinksProviders
Type: ("opensea"
| "rarible"
| "explorer"
)
NFTMetadataResponse
Type: {status: (200
| 404
| 500
), result: ({contract: string, tokenId: string, tokenName: (string | null), nftName: (string | null), medias: NFTMedias, description: (string | null), properties: Array<Record<("key"
| "value"
), string>>, links: Record<NFTMetadataLinksProviders, string>, staxImage: string?} | null)?}
Properties
status
(200
| 404
| 500
) result
({contract: string, tokenId: string, tokenName: (string | null), nftName: (string | null), medias: NFTMedias, description: (string | null), properties: Array<Record<("key"
| "value"
), string>>, links: Record<NFTMetadataLinksProviders, string>, staxImage: string?} | null)?
NFTCollectionMetadataResponse
Type: {status: (200
| 404
| 500
), result: ({contract: string, tokenName: (string | null)} | null)?}
Properties
status
(200
| 404
| 500
) result
({contract: string, tokenName: (string | null)} | null)?
FloorPrice
Type: {ticker: string, value: number}
Properties
OperationType
Type: ("IN"
| "OUT"
| "NONE"
| "CREATE"
| "REVEAL"
| "DELEGATE"
| "UNDELEGATE"
| "REDELEGATE"
| "REWARD"
| "FEES"
| "FREEZE"
| "UNFREEZE"
| "WITHDRAW_EXPIRE_UNFREEZE"
| "UNDELEGATE_RESOURCE"
| "LEGACY_UNFREEZE"
| "VOTE"
| "REWARD_PAYOUT"
| "BOND"
| "UNBOND"
| "WITHDRAW_UNBONDED"
| "SET_CONTROLLER"
| "SLASH"
| "NOMINATE"
| "CHILL"
| "APPROVE"
| "OPT_IN"
| "OPT_OUT"
| "LOCK"
| "UNLOCK"
| "WITHDRAW"
| "REVOKE"
| "ACTIVATE"
| "REGISTER"
| "NFT_IN"
| "NFT_OUT"
| "STAKE"
| "UNSTAKE"
| "WITHDRAW_UNSTAKED"
)
Operation
An Operation is the Ledger Live abstraction of a transaction for any blockchain
Type: {id: string, hash: string, type: OperationType, value: BigNumber, fee: BigNumber, senders: Array<string>, recipients: Array<string>, blockHeight: (number | null | undefined), blockHash: (string | null | undefined), transactionSequenceNumber: number?, accountId: string, standard: (NFTStandard | string)?, operator: string?, contract: string?, tokenId: string?, date: Date, hasFailed: boolean?, subOperations: Array<Operation>?, internalOperations: Array<Operation>?, nftOperations: Array<Operation>?, transactionRaw: TransactionCommonRaw?, extra: Extra}
Properties
A pagination config holds the user's pagination state
this is a state that usually should leave during the app lifecycle, but is not persisted
it drives the number of operations to poll in accounts
when a user paginate more, the number should accordingly be incremented
The UI should manage scrolling ahead of time (e.g. if 30 ops is displayed and UI have pages of 20 ops, the UI can already request to poll 70 ops so it have 2 pages in advance)
The UI must always do max() to keep the increasing the counter and not going back to lower value: that optim the sync to not recompute things too much
Type: {operationsPerAccountId: Record<string, number>?, operations: number?}
Properties
SyncConfig
Type: {paginationConfig: PaginationConfig, withoutSynchronize: boolean?, blacklistedTokenIds: Array<string>?}
Properties
BalanceHistoryData
Type: {date: Date, value: number}
Properties
BalanceHistory
Type: Array<BalanceHistoryData>
BalanceHistoryRaw
Type: Array<[string, string]>
BalanceHistoryWithCountervalue
Type: Array<any>
ValueChange
Type: {percentage: (number | null | undefined), value: number}
Properties
AccountPortfolio
Type: {history: BalanceHistoryWithCountervalue, countervalueAvailable: boolean, countervalueReceiveSum: number, countervalueSendSum: number, cryptoChange: ValueChange, countervalueChange: ValueChange}
Properties
CurrencyPortfolio
Type: {history: BalanceHistoryWithCountervalue, countervalueAvailable: boolean, histories: Array<BalanceHistoryWithCountervalue>, accounts: AccountLikeArray, cryptoChange: ValueChange, range: PortfolioRange, countervalueChange: ValueChange}
Properties
Portfolio
Type: {balanceHistory: BalanceHistory, balanceAvailable: boolean, availableAccounts: Array<AccountLike>, unavailableCurrencies: Array<(CryptoCurrency | TokenCurrency)>, accounts: Array<AccountLike>, range: PortfolioRange, histories: Array<BalanceHistoryWithCountervalue>, countervalueReceiveSum: number, countervalueSendSum: number, countervalueChange: ValueChange}
Properties
PortfolioRangeConfig
Type: {count: number?, granularityId: GranularityId, startOf: function (arg0: Date): Date, increment: number}
Properties
PortfolioRange
Type: ("all"
| "year"
| "month"
| "week"
| "day"
)
AssetsDistribution
Type: {isAvailable: boolean, list: Array<DistributionItem>, showFirst: number, sum: number}
Properties
PostOnboardingActionId
Unique identifier of a post onboarding action.
getNavigationParams
Navigation params when the user presses the button for this action
- In LLM, this will be used like this:
navigation.navigate(...getNavigationParams)
Type: function (options: {deviceModelId: DeviceModelId, protectId: string}): ([any] | [any, any])
startAction
The function to call when the user presses the button for this action
Type: function (args: {openModalCallback: function (modalName: any): void, navigationCallback: function (location: (Record<string, any> | string)): void, deviceModelId: DeviceModelId, protectId: string}): void
Optional Redux dispatch function
PostOnboardingAction
All necessary information for complete integration of a post onboarding
action.
Type: any
disabled
Allow to display the action without letting the user access its flow
Type: boolean
featureFlagId
If this action is linked to a feature that is enabled by a feature flag,
use this property to identify the feature flag.
Type: FeatureId
Icon
Icon displayed for this action in the post onboarding hub.
Type: function (props: {size: ("XS"
| "S"
| "M"
| "L"
| "XL"
)?, color: string?, style: object?}): any
title
Title displayed for this action in the post onboarding hub.
Type: string
titleCompleted
Title displayed for this action in the post onboarding hub when the action
is completed.
Type: string
description
Description displayed for this action in the post onboarding hub.
Type: string
tagLabel
Tag displayed for this action in the post onboarding hub.
Type: string
Will appear in an success alert at the bottom of the post-onboarding hub
after completing this action.
Type: string
getIsAlreadyCompleted
Async function that returns true if the action has already been completed prior to entering
the post-onboarding and false otherwise
Type: function (args: {protectId: string}): Promise<boolean>
shouldCompleteOnStart
Used to set the action as complete when clicking on it.
Especially useful when the action opens a live app and we can't know
when the action as been successfully finished
Type: boolean
buttonLabelForAnalyticsEvent
Value to use in the "button" property of the event sent when the user
triggers the action by pressing the button in the post onboarding hub.
Type: string
PostOnboardingActionState
State of a post onboarding action.
Type: {completed: boolean}
Properties
completed
Whether the user has completed this action. This will be reflected in the
UI of the post onboarding hub.
Type: boolean
PostOnboardingState
To be used for a redux reducer.
Keeps all necessary information about the state of the post onboarding hub
and can be persisted in storage.
Type: {deviceModelId: (DeviceModelId | null), walletEntryPointDismissed: boolean, actionsToComplete: Array<PostOnboardingActionId>, actionsCompleted: any, lastActionCompleted: (PostOnboardingActionId | null), postOnboardingInProgress: boolean}
Properties
deviceModelId
Model Id of the device for which the post onboarding was started.
Type: (DeviceModelId | null)
walletEntryPointDismissed
Did the user dismiss the post onboarding entry point on the wallet page.
Type: boolean
actionsToComplete
List of all actions that have to be completed in this post onboarding
(whether they are completed or).
This is used to populate the list of actions in the post onboarding hub UI.
Type: Array<PostOnboardingActionId>
actionsCompleted
"completed" state for each action.
Type: any
lastActionCompleted
Last action that the user has completed.
This is used to display potentially different content in the post
onboarding hub UI depending on the last action that was completed.
Type: (PostOnboardingActionId | null)
postOnboardingInProgress
Did the user started the PostOnboarding without closing or finishing it ?
Type: boolean
PostOnboardingHubState
Digest of the store & list of actions into something directly consumable
by UI. (All UI data will be in there).
Type: {deviceModelId: (DeviceModelId | null), lastActionCompleted: (PostOnboardingAction | null), actionsState: Array<any>, postOnboardingInProgress: boolean}
Properties
SwapOperation
Type: {provider: string, swapId: string, status: string, receiverAccountId: string, tokenId: string?, operationId: string, fromAmount: BigNumber, toAmount: BigNumber}
Properties
SwapOperationRaw
Type: {provider: string, swapId: string, status: string, receiverAccountId: string, tokenId: string?, operationId: string, fromAmount: string, toAmount: string}
Properties
SignedOperation
Type: {operation: Operation, signature: string, rawData: Record<string, any>?, expirationDate: Date?}
Properties
SignedOperationRaw
Type: {operation: OperationRaw, signature: string, rawData: Record<string, any>?, expirationDate: string?}
Properties
operation
OperationRaw signature
string rawData
Record<string, any>? expirationDate
string?
SignOperationEvent
Type: ({type: "device-streaming"
, progress: number, index: number, total: number} | {type: "device-signature-requested"
} | {type: "device-signature-granted"
} | {type: "signed"
, signedOperation: SignedOperation})
SignOperationEventRaw
Type: ({type: "device-streaming"
, progress: number, index: number, total: number} | {type: "device-signature-requested"
} | {type: "device-signature-granted"
} | {type: "signed"
, signedOperation: SignedOperationRaw})
TransactionCommon
Transaction is a generic object that holds all state for all transactions
there are generic fields and coin specific fields. That's why almost all fields are optionals
Type: {amount: BigNumber, recipient: string, recipientDomain: DomainServiceResolution?, useAllAmount: boolean?, subAccountId: (string | null | undefined)?, feesStrategy: ("slow"
| "medium"
| "fast"
| "custom"
| null)?}
Properties
amount
BigNumber recipient
string recipientDomain
DomainServiceResolution? useAllAmount
boolean? subAccountId
(string | null | undefined)? feesStrategy
("slow"
| "medium"
| "fast"
| "custom"
| null)?
TransactionCommonRaw
Type: {amount: string, recipient: string, recipientDomain: DomainServiceResolution?, useAllAmount: boolean?, subAccountId: (string | null | undefined)?, feesStrategy: ("slow"
| "medium"
| "fast"
| "custom"
| null)?}
Properties
amount
string recipient
string recipientDomain
DomainServiceResolution? useAllAmount
boolean? subAccountId
(string | null | undefined)? feesStrategy
("slow"
| "medium"
| "fast"
| "custom"
| null)?
FeeStrategy
User can have 3 differents choice for their fee
Most of the time mid is low * 1.25 and high is low * 1.5
They are some exception as eth that got his own meter
Type: {amount: BigNumber, displayedAmount: BigNumber?, txParameters: FeeStrategyTxParameters?, label: string, unit: Unit?, disabled: boolean?, extra: Record<string, BigNumber>?}
Properties
amount
BigNumber displayedAmount
BigNumber? txParameters
FeeStrategyTxParameters? label
string unit
Unit? disabled
boolean? extra
Record<string, BigNumber>?
TransactionStatusCommon
TransactionStatus is a view of Transaction with general info to be used on the UI and status info.
Type: {errors: Record<string, Error>, warnings: Record<string, Error>, estimatedFees: BigNumber, amount: BigNumber, totalSpent: BigNumber, recipientIsReadOnly: boolean?}
Properties
errors
Record<string, Error> warnings
Record<string, Error> estimatedFees
BigNumber amount
BigNumber totalSpent
BigNumber recipientIsReadOnly
boolean?
TransactionStatusCommonRaw
Type: {errors: Record<string, string>, warnings: Record<string, string>, estimatedFees: string, amount: string, totalSpent: string, useAllAmount: boolean?, recipientIsReadOnly: boolean?}
Properties
<<<<<<< HEAD
Type: {type: "Account"
, id: string, seedIdentifier: string, xpub: string?, derivationMode: DerivationMode, index: number, freshAddress: string, freshAddressPath: string, freshAddresses: Array<Address>, name: string, starred: boolean, used: boolean, balance: BigNumber, spendableBalance: BigNumber, creationDate: Date, blockHeight: number, currency: CryptoCurrency, feesCurrency: (CryptoCurrency | TokenCurrency)?, unit: Unit, operationsCount: number, operations: Array<Operation>, pendingOperations: Array<Operation>, lastSyncDate: Date, subAccounts: Array<TokenAccount>?, balanceHistoryCache: BalanceHistoryCache, swapHistory: Array<SwapOperation>, syncHash: string?, nfts: Array<ProtoNFT>?}
Type: {type: "Account"
, id: string, seedIdentifier: string, xpub: string?, derivationMode: DerivationMode, index: number, freshAddress: string, freshAddressPath: string, name: string, starred: boolean, used: boolean, balance: BigNumber, spendableBalance: BigNumber, creationDate: Date, blockHeight: number, currency: CryptoCurrency, feesCurrency: (CryptoCurrency | TokenCurrency)?, unit: Unit, operationsCount: number, operations: Array<Operation>, pendingOperations: Array<Operation>, lastSyncDate: Date, endpointConfig: (string | null | undefined)?, subAccounts: Array<SubAccount>?, balanceHistoryCache: BalanceHistoryCache, swapHistory: Array<SwapOperation>, syncHash: string?, nfts: Array<ProtoNFT>?}
9b1c68f82c (chore: remove unused Account#freshAddresses)
Properties
SubAccount
deprecated use TokenAccount instead
Type: TokenAccount
AccountLike
One of the Account type
Type: (Account | TokenAccount)
AccountLikeArray
An array of AccountLikes
Type: (Array<AccountLike> | Array<TokenAccount> | Array<Account>)
TokenAccountRaw
Type: {type: "TokenAccountRaw"
, id: string, starred: boolean?, parentId: string, tokenId: string, creationDate: string?, operationsCount: number?, operations: Array<OperationRaw>, pendingOperations: Array<OperationRaw>, balance: string, spendableBalance: string?, balanceHistoryCache: BalanceHistoryCache?, swapHistory: Array<SwapOperationRaw>?, approvals: Array<{sender: string, value: string}>?}
Properties
AccountRaw
<<<<<<< HEAD
Type: {id: string, seedIdentifier: string, xpub: string?, derivationMode: DerivationMode, index: number, freshAddress: string, freshAddressPath: string, freshAddresses: Array<Address>, name: string, starred: boolean?, used: boolean?, balance: string, spendableBalance: string?, blockHeight: number, creationDate: string?, operationsCount: number?, currencyId: string, feesCurrencyId: string?, operations: Array<OperationRaw>, pendingOperations: Array<OperationRaw>, unitMagnitude: number, lastSyncDate: string, subAccounts: Array<TokenAccountRaw>?, balanceHistoryCache: BalanceHistoryCache?, swapHistory: Array<SwapOperationRaw>?, syncHash: string?, nfts: Array<ProtoNFTRaw>?}
Type: {id: string, seedIdentifier: string, xpub: string?, derivationMode: DerivationMode, index: number, freshAddress: string, freshAddressPath: string, name: string, starred: boolean?, used: boolean?, balance: string, spendableBalance: string?, blockHeight: number, creationDate: string?, operationsCount: number?, currencyId: string, feesCurrencyId: string?, operations: Array<OperationRaw>, pendingOperations: Array<OperationRaw>, unitMagnitude: number, lastSyncDate: string, endpointConfig: (string | null | undefined)?, subAccounts: Array<SubAccountRaw>?, balanceHistoryCache: BalanceHistoryCache?, swapHistory: Array<SwapOperationRaw>?, syncHash: string?, nfts: Array<ProtoNFTRaw>?}
9b1c68f82c (chore: remove unused Account#freshAddresses)
Properties
AccountRawLike
Type: (AccountRaw | TokenAccountRaw)
AccountIdParams
Type: {type: string, version: string, currencyId: string, xpubOrAddress: string, derivationMode: DerivationMode}
Properties
ScanAccountEventRaw
More events will come in the future
Type: {type: "discovered"
, account: AccountRaw}
Properties
DeviceId
Unique identifier of a device. It will depend on the underlying implementation.
Type: string
PreloadStrategy
Type: Partial<{preloadMaxAge: number}>
BroadcastArg
Type: {account: Account, signedOperation: SignedOperation}
Properties
SignOperationArg0
Type: {account: Account, transaction: T, deviceId: DeviceId}
Properties
SignOperationFnSignature
Type: function (arg0: SignOperationArg0<T>): Observable<SignOperationEvent>
CurrencyBridge
Abstraction related to a currency
AccountBridge
Abstraction related to an account
assignToAccountRaw
This function mutates the 'accountRaw' object in-place to add any extra fields that the coin may need to set.
It is called during the serialization mechanism, for instance bitcoinResources need to be serialized.
Type: function (account: Account, accountRaw: AccountRaw): void
Parameters
account
Account The original account object.accountRaw
AccountRaw The account in its serialized form.
assignFromAccountRaw
This function mutates the 'account' object in-place to add any extra fields that the coin may need to set.
It is called during the deserialization mechanism, for instance bitcoinResources need to be deserialized.
Type: function (accountRaw: AccountRaw, account: Account): void
Parameters
accountRaw
AccountRaw The account in its serialized form.account
Account The original account object.
initAccount
This function mutates the 'account' object to extend it with any extra fields of the coin.
For instance bitcoinResources needs to be created.
Type: function (account: Account): void
Parameters
account
Account The original account object to mutates in-place.
CurrenciesData
Type: {FIXME_ignoreAccountFields: Array<string>?, FIXME_ignoreOperationFields: Array<string>?, FIXME_ignorePreloadFields: (Array<string> | true
)?, IgnorePrepareTransactionFields: Array<string>?, mockDeviceOptions: any?, scanAccounts: Array<{name: string, apdus: string, unstableAccounts: boolean?, test: function (expect: ExpectFn, scanned: Array<Account>, bridge: CurrencyBridge): any?}>?, accounts: Array<AccountTestData<T>>?, test: function (arg0: ExpectFn, arg1: CurrencyBridge): any?}
Properties
DatasetTest
Type: {implementations: Array<string>, currencies: (Record<CryptoCurrencyIds, CurrenciesData<T>> | Record<string, never>)}
Properties
DerivationMode
DerivationMode is a string identifier of a specific derivation scheme in a list defined in live-common derivation.ts
Type: (""
| "ethM"
| "ethMM"
| "bch_on_bitcoin_segwit"
| "legacy_on_bch"
| "vertcoin_128"
| "vertcoin_128_segwit"
| "etcM"
| "aeternity"
| "tezbox"
| "tezosbip44h"
| "galleonL"
| "tezboxL"
| "taproot"
| "native_segwit"
| "segwit"
| "segwit_on_legacy"
| "legacy_on_segwit"
| "legacy_on_native_segwit"
| "segwit_unsplit"
| "sep5"
| "unsplit"
| "polkadotbip44"
| "glifLegacy"
| "glif"
| "filecoinBIP44"
| "casper_wallet"
| "solanaMain"
| "solanaSub"
| "hederaBip44"
| "cardano"
| "nearbip44h"
| "vechain"
| "internet_computer"
| "stacks_wallet"
)
Feature
Feature type.
Type: {enabled: boolean, desktop_version: string?, mobile_version: string?, enabledOverriddenForCurrentVersion: boolean?, languages_whitelisted: Array<string>?, languages_blacklisted: Array<string>?, enabledOverriddenForCurrentLanguage: boolean?, overridesRemote: boolean?, overriddenByEnv: boolean?, params: T?}
Properties
enabled
If false, the feature is disabled (for every languages regardless of the languages_whitelisted option)
Type: boolean
desktop_version
The desktop_version
option is desktop specific, it has no impact on mobile
If set, the feature is disabled when the desktop app version does not satisfies this param
It should respect the semantic versioning specification (https://semver.org/)
Type: string
mobile_version
The mobile_version
option is mobile specific, it has no impact on mobile
If set, the feature is disabled when the mobile app version does not satisfies this param
It should respect the semantic versioning specification (https://semver.org/)
Type: string
enabledOverriddenForCurrentVersion
Whether the remote value of enabled
was overriden due to desktop_version
or mobile_version
Type: boolean
languages_whitelisted
You can optionnally use one of the two following options (languages_whitelisted and languages_blacklisted) (Only implemented on mobile for now)
List of languages for which the feature is enabled (it will be disabled by default for all of the others)
Type: Array<string>
languages_blacklisted
List of languages for which the feature is disabled
Type: Array<string>
enabledOverriddenForCurrentLanguage
Whether the remote value of enabled
was overriden due to languages_whitelisted
or languages_blacklisted
Type: boolean
overridesRemote
Whether the remote value of this object was overriden locally
Type: boolean
overriddenByEnv
Whether the remote value of this object was overriden by an environment variable
Type: boolean
params
Additional params
Type: T
DefaultFeature
Default Feature type.
Type: Feature<any>
CurrencyFeatures
Currency Features type.
Type: {currencyAvalancheCChain: DefaultFeature, currencyStacks: DefaultFeature, currencyOptimism: DefaultFeature, currencyOptimismSepolia: DefaultFeature, currencyArbitrum: DefaultFeature, currencyArbitrumSepolia: DefaultFeature, currencyRsk: DefaultFeature, currencyBittorrent: DefaultFeature, currencyEnergyWeb: DefaultFeature, currencyAstar: DefaultFeature, currencyMetis: DefaultFeature, currencyBoba: DefaultFeature, currencyMoonriver: DefaultFeature, currencyVelasEvm: DefaultFeature, currencySyscoin: DefaultFeature, currencyAxelar: DefaultFeature, currencySecretNetwork: DefaultFeature, currencySeiNetwork: DefaultFeature, currencyDesmos: DefaultFeature, currencyDydx: DefaultFeature, currencyUmee: DefaultFeature, currencyStargaze: DefaultFeature, currencyOnomy: DefaultFeature, currencyPersistence: DefaultFeature, currencyQuicksilver: DefaultFeature, currencyInternetComputer: DefaultFeature, currencyInjective: DefaultFeature, currencyTelosEvm: DefaultFeature, currencyCoreum: DefaultFeature, currencyPolygonZkEvm: DefaultFeature, currencyPolygonZkEvmTestnet: DefaultFeature, currencyBase: DefaultFeature, currencyBaseSepolia: DefaultFeature, currencyKlaytn: DefaultFeature, currencyVechain: DefaultFeature, currencyCasper: DefaultFeature, currencyNeonEvm: DefaultFeature, currencyLukso: DefaultFeature, currencyLinea: DefaultFeature, currencyLineaTesnet: DefaultFeature}
Properties
Features
Features type.
Type: any
FeatureId
FeatureId type.
Type: any
Feature_EthStakingProviders
Features types.
Type: Feature<{listProvider: Array<{id: string, name: string, liveAppId: string, supportLink: string?, icon: string?, queryParams: Record<string, string>?}>}>
FeatureMap
Utils types.
Type: any
LedgerScriptParams
Type: {firmware: string, firmwareKey: string, delete: string?, deleteKey: string?, targetId: (string | number)?, hash: string, perso: string}
Properties
DeviceInfo
Type: {mcuVersion: string, version: string, majMin: string, targetId: (string | number), isBootloader: boolean, isRecoveryMode: boolean?, isOSU: boolean, providerName: (string | null | undefined), managerAllowed: boolean, pinValidated: boolean, seVersion: string?, mcuBlVersion: string?, mcuTargetId: number?, seTargetId: number?, onboarded: boolean?, hasDevFirmware: boolean?, bootloaderVersion: string?, hardwareVersion: number?, languageId: number?}
Properties
DeviceModelInfo
Type: {modelId: DeviceModelId, deviceInfo: DeviceInfo, apps: Array<{name: string, version: string}>}
Properties
DeviceVersion
Type: {id: Id, name: string, display_name: string, target_id: string, description: string, device: Id, providers: Array<Id>, mcu_versions: Array<Id>, se_firmware_final_versions: Array<Id>, osu_versions: Array<Id>, application_versions: Array<Id>, date_creation: string, date_last_modified: string}
Properties
McuVersion
Type: {id: Id, mcu: Id, name: string, description: (string | null | undefined), providers: Array<Id>, from_bootloader_version: string, device_versions: Array<Id>, se_firmware_final_versions: Array<Id>, date_creation: string, date_last_modified: string}
Properties
SeedPhraseType
FirmwareInfo
Type: {isBootloader: boolean, rawVersion: string, targetId: number, seVersion: string?, mcuVersion: string, mcuBlVersion: string?, mcuTargetId: number?, seTargetId: number?, flags: Buffer, bootloaderVersion: string?, hardwareVersion: number?, languageId: number?}
Properties
OsuFirmware
Type: any
FinalFirmware
Type: any
FirmwareUpdateContext
Type: {osu: OsuFirmware, final: FinalFirmware, shouldFlashMCU: boolean}
Properties
ApplicationVersion
Type: {id: Id, name: string, version: string, app: Id, description: (string | null | undefined), display_name: string, icon: string, notes: (string | null | undefined), perso: string, hash: string, firmware: string, firmware_key: string, delete: string, delete_key: string, device_versions: Array<Id>, se_firmware_final_versions: Array<Id>, providers: Array<Id>, date_creation: string, date_last_modified: string, type: AppType?, bytes: (number | null | undefined), warning: (string | null | undefined), currency: CryptoCurrency?}
Properties
Application
Type: {id: Id, name: string, description: (string | null | undefined), application_versions: Array<ApplicationVersion>, providers: Array<Id>, category: Id, publisher: (Id | null | undefined), date_creation: string, date_last_modified: string, currencyId: (string | null | undefined), authorName: (string | null | undefined), supportURL: (string | null | undefined), contactURL: (string | null | undefined), sourceURL: (string | null | undefined)}
Properties
AppType
App
App is higher level on top of Application and ApplicationVersion
with all fields Live needs and in normalized form (but still serializable)
Type: {id: Id, name: string, displayName: string, version: string, currencyId: (string | null | undefined), description: (string | null | undefined), dateModified: string, icon: string, authorName: (string | null | undefined), supportURL: (string | null | undefined), contactURL: (string | null | undefined), sourceURL: (string | null | undefined), hash: string, perso: string, firmware: string, firmware_key: string, delete: string, delete_key: string, dependencies: Array<string>, bytes: (number | null | undefined), warning: (string | null | undefined), indexOfMarketCap: number, isDevTools: boolean, type: AppType}
Properties
Category
Type: {id: Id, name: string, description: (string | null | undefined), providers: Array<Id>, applications: Array<Id>, date_creation: string, date_last_modified: string}
Properties
SocketEvent
Type: ({type: "bulk-progress"
, progress: number, index: number, total: number} | {type: "result"
, payload: any} | {type: "warning"
, message: string} | {type: "device-permission-requested"
} | {type: "device-permission-granted"
} | {type: "exchange-before"
, nonce: number, apdu: Buffer} | {type: "exchange"
, nonce: number, apdu: Buffer, data: Buffer, status: number} | {type: "opened"
} | {type: "closed"
})
NFTStandard
Type: ("ERC721"
| "ERC1155"
)
NFTMediaSize
Type: ("preview"
| "big"
| "original"
)
NFTMedias
Type: Record<NFTMediaSize, {uri: string, mediaType: string}>
NFTMetadata
Type: {tokenName: (string | null), nftName: (string | null), medias: NFTMedias, description: (string | null), properties: Array<Record<("key"
| "value"
), string>>, links: Record<NFTMetadataLinksProviders, string>, staxImage: string?}
Properties
NFTCollectionMetadata
Type: {tokenName: (string | null)}
Properties
ProtoNFT
Type: {id: string, tokenId: string, amount: BigNumber, contract: string, standard: NFTStandard, currencyId: CryptoCurrencyIds, metadata: NFTMetadata?}
Properties
ProtoNFTRaw
Type: any
NFT
Type: any
NFTMetadataLinksProviders
Type: ("opensea"
| "rarible"
| "explorer"
)
NFTMetadataResponse
Type: {status: (200
| 404
| 500
), result: ({contract: string, tokenId: string, tokenName: (string | null), nftName: (string | null), medias: NFTMedias, description: (string | null), properties: Array<Record<("key"
| "value"
), string>>, links: Record<NFTMetadataLinksProviders, string>, staxImage: string?} | null)?}
Properties
status
(200
| 404
| 500
) result
({contract: string, tokenId: string, tokenName: (string | null), nftName: (string | null), medias: NFTMedias, description: (string | null), properties: Array<Record<("key"
| "value"
), string>>, links: Record<NFTMetadataLinksProviders, string>, staxImage: string?} | null)?
NFTCollectionMetadataResponse
Type: {status: (200
| 404
| 500
), result: ({contract: string, tokenName: (string | null)} | null)?}
Properties
status
(200
| 404
| 500
) result
({contract: string, tokenName: (string | null)} | null)?
FloorPrice
Type: {ticker: string, value: number}
Properties
OperationType
Type: ("IN"
| "OUT"
| "NONE"
| "CREATE"
| "REVEAL"
| "DELEGATE"
| "UNDELEGATE"
| "REDELEGATE"
| "REWARD"
| "FEES"
| "FREEZE"
| "UNFREEZE"
| "WITHDRAW_EXPIRE_UNFREEZE"
| "UNDELEGATE_RESOURCE"
| "LEGACY_UNFREEZE"
| "VOTE"
| "REWARD_PAYOUT"
| "BOND"
| "UNBOND"
| "WITHDRAW_UNBONDED"
| "SET_CONTROLLER"
| "SLASH"
| "NOMINATE"
| "CHILL"
| "APPROVE"
| "OPT_IN"
| "OPT_OUT"
| "LOCK"
| "UNLOCK"
| "WITHDRAW"
| "REVOKE"
| "ACTIVATE"
| "REGISTER"
| "NFT_IN"
| "NFT_OUT"
| "STAKE"
| "UNSTAKE"
| "WITHDRAW_UNSTAKED"
)
Operation
An Operation is the Ledger Live abstraction of a transaction for any blockchain
Type: {id: string, hash: string, type: OperationType, value: BigNumber, fee: BigNumber, senders: Array<string>, recipients: Array<string>, blockHeight: (number | null | undefined), blockHash: (string | null | undefined), transactionSequenceNumber: number?, accountId: string, standard: (NFTStandard | string)?, operator: string?, contract: string?, tokenId: string?, date: Date, hasFailed: boolean?, subOperations: Array<Operation>?, internalOperations: Array<Operation>?, nftOperations: Array<Operation>?, transactionRaw: TransactionCommonRaw?, extra: Extra}
Properties
A pagination config holds the user's pagination state
this is a state that usually should leave during the app lifecycle, but is not persisted
it drives the number of operations to poll in accounts
when a user paginate more, the number should accordingly be incremented
The UI should manage scrolling ahead of time (e.g. if 30 ops is displayed and UI have pages of 20 ops, the UI can already request to poll 70 ops so it have 2 pages in advance)
The UI must always do max() to keep the increasing the counter and not going back to lower value: that optim the sync to not recompute things too much
Type: {operationsPerAccountId: Record<string, number>?, operations: number?}
Properties
SyncConfig
Type: {paginationConfig: PaginationConfig, withoutSynchronize: boolean?, blacklistedTokenIds: Array<string>?}
Properties
BalanceHistoryData
Type: {date: Date, value: number}
Properties
BalanceHistory
Type: Array<BalanceHistoryData>
BalanceHistoryRaw
Type: Array<[string, string]>
BalanceHistoryWithCountervalue
Type: Array<any>
ValueChange
Type: {percentage: (number | null | undefined), value: number}
Properties
AccountPortfolio
Type: {history: BalanceHistoryWithCountervalue, countervalueAvailable: boolean, countervalueReceiveSum: number, countervalueSendSum: number, cryptoChange: ValueChange, countervalueChange: ValueChange}
Properties
CurrencyPortfolio
Type: {history: BalanceHistoryWithCountervalue, countervalueAvailable: boolean, histories: Array<BalanceHistoryWithCountervalue>, accounts: AccountLikeArray, cryptoChange: ValueChange, range: PortfolioRange, countervalueChange: ValueChange}
Properties
Portfolio
Type: {balanceHistory: BalanceHistory, balanceAvailable: boolean, availableAccounts: Array<AccountLike>, unavailableCurrencies: Array<(CryptoCurrency | TokenCurrency)>, accounts: Array<AccountLike>, range: PortfolioRange, histories: Array<BalanceHistoryWithCountervalue>, countervalueReceiveSum: number, countervalueSendSum: number, countervalueChange: ValueChange}
Properties
PortfolioRangeConfig
Type: {count: number?, granularityId: GranularityId, startOf: function (arg0: Date): Date, increment: number}
Properties
PortfolioRange
Type: ("all"
| "year"
| "month"
| "week"
| "day"
)
AssetsDistribution
Type: {isAvailable: boolean, list: Array<DistributionItem>, showFirst: number, sum: number}
Properties
PostOnboardingActionId
Unique identifier of a post onboarding action.
getNavigationParams
Navigation params when the user presses the button for this action
- In LLM, this will be used like this:
navigation.navigate(...getNavigationParams)
Type: function (options: {deviceModelId: DeviceModelId, protectId: string}): ([any] | [any, any])
startAction
The function to call when the user presses the button for this action
Type: function (args: {openModalCallback: function (modalName: any): void, navigationCallback: function (location: (Record<string, any> | string)): void, deviceModelId: DeviceModelId, protectId: string}): void
Optional Redux dispatch function
PostOnboardingAction
All necessary information for complete integration of a post onboarding
action.
Type: any
disabled
Allow to display the action without letting the user access its flow
Type: boolean
featureFlagId
If this action is linked to a feature that is enabled by a feature flag,
use this property to identify the feature flag.
Type: FeatureId
Icon
Icon displayed for this action in the post onboarding hub.
Type: function (props: {size: ("XS"
| "S"
| "M"
| "L"
| "XL"
)?, color: string?, style: object?}): any
title
Title displayed for this action in the post onboarding hub.
Type: string
titleCompleted
Title displayed for this action in the post onboarding hub when the action
is completed.
Type: string
description
Description displayed for this action in the post onboarding hub.
Type: string
tagLabel
Tag displayed for this action in the post onboarding hub.
Type: string
Will appear in an success alert at the bottom of the post-onboarding hub
after completing this action.
Type: string
getIsAlreadyCompleted
Async function that returns true if the action has already been completed prior to entering
the post-onboarding and false otherwise
Type: function (args: {protectId: string}): Promise<boolean>
shouldCompleteOnStart
Used to set the action as complete when clicking on it.
Especially useful when the action opens a live app and we can't know
when the action as been successfully finished
Type: boolean
buttonLabelForAnalyticsEvent
Value to use in the "button" property of the event sent when the user
triggers the action by pressing the button in the post onboarding hub.
Type: string
PostOnboardingActionState
State of a post onboarding action.
Type: {completed: boolean}
Properties
completed
Whether the user has completed this action. This will be reflected in the
UI of the post onboarding hub.
Type: boolean
PostOnboardingState
To be used for a redux reducer.
Keeps all necessary information about the state of the post onboarding hub
and can be persisted in storage.
Type: {deviceModelId: (DeviceModelId | null), walletEntryPointDismissed: boolean, actionsToComplete: Array<PostOnboardingActionId>, actionsCompleted: any, lastActionCompleted: (PostOnboardingActionId | null), postOnboardingInProgress: boolean}
Properties
deviceModelId
Model Id of the device for which the post onboarding was started.
Type: (DeviceModelId | null)
walletEntryPointDismissed
Did the user dismiss the post onboarding entry point on the wallet page.
Type: boolean
actionsToComplete
List of all actions that have to be completed in this post onboarding
(whether they are completed or).
This is used to populate the list of actions in the post onboarding hub UI.
Type: Array<PostOnboardingActionId>
actionsCompleted
"completed" state for each action.
Type: any
lastActionCompleted
Last action that the user has completed.
This is used to display potentially different content in the post
onboarding hub UI depending on the last action that was completed.
Type: (PostOnboardingActionId | null)
postOnboardingInProgress
Did the user started the PostOnboarding without closing or finishing it ?
Type: boolean
PostOnboardingHubState
Digest of the store & list of actions into something directly consumable
by UI. (All UI data will be in there).
Type: {deviceModelId: (DeviceModelId | null), lastActionCompleted: (PostOnboardingAction | null), actionsState: Array<any>, postOnboardingInProgress: boolean}
Properties
SwapOperation
Type: {provider: string, swapId: string, status: string, receiverAccountId: string, tokenId: string?, operationId: string, fromAmount: BigNumber, toAmount: BigNumber}
Properties
SwapOperationRaw
Type: {provider: string, swapId: string, status: string, receiverAccountId: string, tokenId: string?, operationId: string, fromAmount: string, toAmount: string}
Properties
SignedOperation
Type: {operation: Operation, signature: string, rawData: Record<string, any>?, expirationDate: Date?}
Properties
SignedOperationRaw
Type: {operation: OperationRaw, signature: string, rawData: Record<string, any>?, expirationDate: string?}
Properties
operation
OperationRaw signature
string rawData
Record<string, any>? expirationDate
string?
SignOperationEvent
Type: ({type: "device-streaming"
, progress: number, index: number, total: number} | {type: "device-signature-requested"
} | {type: "device-signature-granted"
} | {type: "signed"
, signedOperation: SignedOperation})
SignOperationEventRaw
Type: ({type: "device-streaming"
, progress: number, index: number, total: number} | {type: "device-signature-requested"
} | {type: "device-signature-granted"
} | {type: "signed"
, signedOperation: SignedOperationRaw})
TransactionCommon
Transaction is a generic object that holds all state for all transactions
there are generic fields and coin specific fields. That's why almost all fields are optionals
Type: {amount: BigNumber, recipient: string, recipientDomain: DomainServiceResolution?, useAllAmount: boolean?, subAccountId: (string | null | undefined)?, feesStrategy: ("slow"
| "medium"
| "fast"
| "custom"
| null)?}
Properties
amount
BigNumber recipient
string recipientDomain
DomainServiceResolution? useAllAmount
boolean? subAccountId
(string | null | undefined)? feesStrategy
("slow"
| "medium"
| "fast"
| "custom"
| null)?
TransactionCommonRaw
Type: {amount: string, recipient: string, recipientDomain: DomainServiceResolution?, useAllAmount: boolean?, subAccountId: (string | null | undefined)?, feesStrategy: ("slow"
| "medium"
| "fast"
| "custom"
| null)?}
Properties
amount
string recipient
string recipientDomain
DomainServiceResolution? useAllAmount
boolean? subAccountId
(string | null | undefined)? feesStrategy
("slow"
| "medium"
| "fast"
| "custom"
| null)?
FeeStrategy
User can have 3 differents choice for their fee
Most of the time mid is low * 1.25 and high is low * 1.5
They are some exception as eth that got his own meter
Type: {amount: BigNumber, displayedAmount: BigNumber?, txParameters: FeeStrategyTxParameters?, label: string, unit: Unit?, disabled: boolean?, extra: Record<string, BigNumber>?}
Properties
amount
BigNumber displayedAmount
BigNumber? txParameters
FeeStrategyTxParameters? label
string unit
Unit? disabled
boolean? extra
Record<string, BigNumber>?
TransactionStatusCommon
TransactionStatus is a view of Transaction with general info to be used on the UI and status info.
Type: {errors: Record<string, Error>, warnings: Record<string, Error>, estimatedFees: BigNumber, amount: BigNumber, totalSpent: BigNumber, recipientIsReadOnly: boolean?}
Properties
errors
Record<string, Error> warnings
Record<string, Error> estimatedFees
BigNumber amount
BigNumber totalSpent
BigNumber recipientIsReadOnly
boolean?
TransactionStatusCommonRaw
Type: {errors: Record<string, string>, warnings: Record<string, string>, estimatedFees: string, amount: string, totalSpent: string, useAllAmount: boolean?, recipientIsReadOnly: boolean?}
Properties
<<<<<<< HEAD
Type: {type: "Account"
, id: string, seedIdentifier: string, xpub: string?, derivationMode: DerivationMode, index: number, freshAddress: string, freshAddressPath: string, freshAddresses: Array<Address>, name: string, starred: boolean, used: boolean, balance: BigNumber, spendableBalance: BigNumber, creationDate: Date, blockHeight: number, currency: CryptoCurrency, feesCurrency: (CryptoCurrency | TokenCurrency)?, unit: Unit, operationsCount: number, operations: Array<Operation>, pendingOperations: Array<Operation>, lastSyncDate: Date, subAccounts: Array<SubAccount>?, balanceHistoryCache: BalanceHistoryCache, swapHistory: Array<SwapOperation>, syncHash: string?, nfts: Array<ProtoNFT>?}
Type: {type: "Account"
, id: string, seedIdentifier: string, xpub: string?, derivationMode: DerivationMode, index: number, freshAddress: string, freshAddressPath: string, freshAddresses: Array<Address>, name: string, starred: boolean, used: boolean, balance: BigNumber, spendableBalance: BigNumber, creationDate: Date, blockHeight: number, currency: CryptoCurrency, feesCurrency: (CryptoCurrency | TokenCurrency)?, unit: Unit, operationsCount: number, operations: Array<Operation>, pendingOperations: Array<Operation>, lastSyncDate: Date, endpointConfig: (string | null | undefined)?, subAccounts: Array<TokenAccount>?, balanceHistoryCache: BalanceHistoryCache, swapHistory: Array<SwapOperation>, syncHash: string?, nfts: Array<ProtoNFT>?}
804971b8d4 (chore: sunset unused ChildAccount type)
Properties
804971b8d4 (chore: sunset unused ChildAccount type)
SubAccount
deprecated use TokenAccount instead
Type: TokenAccount
AccountLike
One of the Account type
Type: (Account | TokenAccount)
AccountLikeArray
An array of AccountLikes
Type: (Array<AccountLike> | Array<TokenAccount> | Array<Account>)
TokenAccountRaw
Type: {type: "TokenAccountRaw"
, id: string, starred: boolean?, parentId: string, tokenId: string, creationDate: string?, operationsCount: number?, operations: Array<OperationRaw>, pendingOperations: Array<OperationRaw>, balance: string, spendableBalance: string?, balanceHistoryCache: BalanceHistoryCache?, swapHistory: Array<SwapOperationRaw>?, approvals: Array<{sender: string, value: string}>?}
Properties
AccountRaw
<<<<<<< HEAD
Type: {id: string, seedIdentifier: string, xpub: string?, derivationMode: DerivationMode, index: number, freshAddress: string, freshAddressPath: string, freshAddresses: Array<Address>, name: string, starred: boolean?, used: boolean?, balance: string, spendableBalance: string?, blockHeight: number, creationDate: string?, operationsCount: number?, currencyId: string, feesCurrencyId: string?, operations: Array<OperationRaw>, pendingOperations: Array<OperationRaw>, unitMagnitude: number, lastSyncDate: string, subAccounts: Array<SubAccountRaw>?, balanceHistoryCache: BalanceHistoryCache?, swapHistory: Array<SwapOperationRaw>?, syncHash: string?, nfts: Array<ProtoNFTRaw>?}
Type: {id: string, seedIdentifier: string, xpub: string?, derivationMode: DerivationMode, index: number, freshAddress: string, freshAddressPath: string, freshAddresses: Array<Address>, name: string, starred: boolean?, used: boolean?, balance: string, spendableBalance: string?, blockHeight: number, creationDate: string?, operationsCount: number?, currencyId: string, feesCurrencyId: string?, operations: Array<OperationRaw>, pendingOperations: Array<OperationRaw>, unitMagnitude: number, lastSyncDate: string, endpointConfig: (string | null | undefined)?, subAccounts: Array<TokenAccountRaw>?, balanceHistoryCache: BalanceHistoryCache?, swapHistory: Array<SwapOperationRaw>?, syncHash: string?, nfts: Array<ProtoNFTRaw>?}
804971b8d4 (chore: sunset unused ChildAccount type)
Properties
804971b8d4 (chore: sunset unused ChildAccount type)
AccountRawLike
Type: (AccountRaw | TokenAccountRaw)
AccountIdParams
Type: {type: string, version: string, currencyId: string, xpubOrAddress: string, derivationMode: DerivationMode}
Properties
ScanAccountEventRaw
More events will come in the future
Type: {type: "discovered"
, account: AccountRaw}
Properties
DeviceId
Unique identifier of a device. It will depend on the underlying implementation.
Type: string
PreloadStrategy
Type: Partial<{preloadMaxAge: number}>
BroadcastArg
Type: {account: Account, signedOperation: SignedOperation}
Properties
SignOperationArg0
Type: {account: Account, transaction: T, deviceId: DeviceId}
Properties
SignOperationFnSignature
Type: function (arg0: SignOperationArg0<T>): Observable<SignOperationEvent>
CurrencyBridge
Abstraction related to a currency
AccountBridge
Abstraction related to an account
assignToAccountRaw
This function mutates the 'accountRaw' object in-place to add any extra fields that the coin may need to set.
It is called during the serialization mechanism, for instance bitcoinResources need to be serialized.
Type: function (account: Account, accountRaw: AccountRaw): void
Parameters
account
Account The original account object.accountRaw
AccountRaw The account in its serialized form.
assignFromAccountRaw
This function mutates the 'account' object in-place to add any extra fields that the coin may need to set.
It is called during the deserialization mechanism, for instance bitcoinResources need to be deserialized.
Type: function (accountRaw: AccountRaw, account: Account): void
Parameters
accountRaw
AccountRaw The account in its serialized form.account
Account The original account object.
initAccount
This function mutates the 'account' object to extend it with any extra fields of the coin.
For instance bitcoinResources needs to be created.
Type: function (account: Account): void
Parameters
account
Account The original account object to mutates in-place.
CurrenciesData
Type: {FIXME_ignoreAccountFields: Array<string>?, FIXME_ignoreOperationFields: Array<string>?, FIXME_ignorePreloadFields: Array<string>?, IgnorePrepareTransactionFields: Array<string>?, mockDeviceOptions: any?, scanAccounts: Array<{name: string, apdus: string, unstableAccounts: boolean?, test: function (expect: ExpectFn, scanned: Array<Account>, bridge: CurrencyBridge): any?}>?, accounts: Array<{implementations: Array<string>?, raw: AccountRaw, FIXME_tests: Array<(string | RegExp)>?, transactions: Array<CurrencyTransaction<T>>?, test: function (arg0: ExpectFn, arg1: Account, arg2: AccountBridge<T>): any?}>?, test: function (arg0: ExpectFn, arg1: CurrencyBridge): any?}
Properties
FIXME_ignoreAccountFields
Array<string>? FIXME_ignoreOperationFields
Array<string>? FIXME_ignorePreloadFields
Array<string>? IgnorePrepareTransactionFields
Array<string>? mockDeviceOptions
any? scanAccounts
Array<{name: string, apdus: string, unstableAccounts: boolean?, test: function (expect: ExpectFn, scanned: Array<Account>, bridge: CurrencyBridge): any?}>? accounts
Array<{implementations: Array<string>?, raw: AccountRaw, FIXME_tests: Array<(string | RegExp)>?, transactions: Array<CurrencyTransaction<T>>?, test: function (arg0: ExpectFn, arg1: Account, arg2: AccountBridge<T>): any?}>? test
function (arg0: ExpectFn, arg1: CurrencyBridge): any?
DatasetTest
Type: {implementations: Array<string>, currencies: (Record<CryptoCurrencyIds, CurrenciesData<T>> | Record<string, never>)}
Properties
DerivationMode
DerivationMode is a string identifier of a specific derivation scheme in a list defined in live-common derivation.ts
Type: (""
| "ethM"
| "ethMM"
| "bch_on_bitcoin_segwit"
| "legacy_on_bch"
| "vertcoin_128"
| "vertcoin_128_segwit"
| "etcM"
| "aeternity"
| "tezbox"
| "tezosbip44h"
| "galleonL"
| "tezboxL"
| "taproot"
| "native_segwit"
| "segwit"
| "segwit_on_legacy"
| "legacy_on_segwit"
| "legacy_on_native_segwit"
| "segwit_unsplit"
| "sep5"
| "unsplit"
| "polkadotbip44"
| "glifLegacy"
| "glif"
| "filecoinBIP44"
| "casper_wallet"
| "solanaMain"
| "solanaSub"
| "hederaBip44"
| "cardano"
| "nearbip44h"
| "vechain"
| "internet_computer"
| "stacks_wallet"
)
Feature
Feature type.
Type: {enabled: boolean, desktop_version: string?, mobile_version: string?, enabledOverriddenForCurrentVersion: boolean?, languages_whitelisted: Array<string>?, languages_blacklisted: Array<string>?, enabledOverriddenForCurrentLanguage: boolean?, overridesRemote: boolean?, overriddenByEnv: boolean?, params: T?}
Properties
enabled
If false, the feature is disabled (for every languages regardless of the languages_whitelisted option)
Type: boolean
desktop_version
The desktop_version
option is desktop specific, it has no impact on mobile
If set, the feature is disabled when the desktop app version does not satisfies this param
It should respect the semantic versioning specification (https://semver.org/)
Type: string
mobile_version
The mobile_version
option is mobile specific, it has no impact on mobile
If set, the feature is disabled when the mobile app version does not satisfies this param
It should respect the semantic versioning specification (https://semver.org/)
Type: string
enabledOverriddenForCurrentVersion
Whether the remote value of enabled
was overriden due to desktop_version
or mobile_version
Type: boolean
languages_whitelisted
You can optionnally use one of the two following options (languages_whitelisted and languages_blacklisted) (Only implemented on mobile for now)
List of languages for which the feature is enabled (it will be disabled by default for all of the others)
Type: Array<string>
languages_blacklisted
List of languages for which the feature is disabled
Type: Array<string>
enabledOverriddenForCurrentLanguage
Whether the remote value of enabled
was overriden due to languages_whitelisted
or languages_blacklisted
Type: boolean
overridesRemote
Whether the remote value of this object was overriden locally
Type: boolean
overriddenByEnv
Whether the remote value of this object was overriden by an environment variable
Type: boolean
params
Additional params
Type: T
DefaultFeature
Default Feature type.
Type: Feature<any>
CurrencyFeatures
Currency Features type.
Type: {currencyAvalancheCChain: DefaultFeature, currencyStacks: DefaultFeature, currencyOptimism: DefaultFeature, currencyOptimismGoerli: DefaultFeature, currencyArbitrum: DefaultFeature, currencyArbitrumSepolia: DefaultFeature, currencyRsk: DefaultFeature, currencyBittorrent: DefaultFeature, currencyEnergyWeb: DefaultFeature, currencyAstar: DefaultFeature, currencyMetis: DefaultFeature, currencyBoba: DefaultFeature, currencyMoonriver: DefaultFeature, currencyVelasEvm: DefaultFeature, currencySyscoin: DefaultFeature, currencyAxelar: DefaultFeature, currencySecretNetwork: DefaultFeature, currencySeiNetwork: DefaultFeature, currencyDesmos: DefaultFeature, currencyDydx: DefaultFeature, currencyUmee: DefaultFeature, currencyStargaze: DefaultFeature, currencyOnomy: DefaultFeature, currencyPersistence: DefaultFeature, currencyQuicksilver: DefaultFeature, currencyInternetComputer: DefaultFeature, currencyInjective: DefaultFeature, currencyTelosEvm: DefaultFeature, currencyCoreum: DefaultFeature, currencyPolygonZkEvm: DefaultFeature, currencyPolygonZkEvmTestnet: DefaultFeature, currencyBase: DefaultFeature, currencyBaseSepolia: DefaultFeature, currencyKlaytn: DefaultFeature, currencyVechain: DefaultFeature, currencyCasper: DefaultFeature, currencyNeonEvm: DefaultFeature, currencyLukso: DefaultFeature, currencyLinea: DefaultFeature, currencyLineaGoerli: DefaultFeature}
Properties
Features
Features type.
Type: any
FeatureId
FeatureId type.
Type: any
Feature_EthStakingProviders
Features types.
Type: Feature<{listProvider: Array<{id: string, name: string, liveAppId: string, supportLink: string?, icon: string?, queryParams: Record<string, string>?}>}>
FeatureMap
Utils types.
Type: any
LedgerScriptParams
Type: {firmware: string, firmwareKey: string, delete: string?, deleteKey: string?, targetId: (string | number)?, hash: string, perso: string}
Properties
DeviceInfo
Type: {mcuVersion: string, version: string, majMin: string, targetId: (string | number), isBootloader: boolean, isRecoveryMode: boolean?, isOSU: boolean, providerName: (string | null | undefined), managerAllowed: boolean, pinValidated: boolean, seVersion: string?, mcuBlVersion: string?, mcuTargetId: number?, seTargetId: number?, onboarded: boolean?, hasDevFirmware: boolean?, bootloaderVersion: string?, hardwareVersion: number?, languageId: number?}
Properties
DeviceModelInfo
Type: {modelId: DeviceModelId, deviceInfo: DeviceInfo, apps: Array<{name: string, version: string}>}
Properties
DeviceVersion
Type: {id: Id, name: string, display_name: string, target_id: string, description: string, device: Id, providers: Array<Id>, mcu_versions: Array<Id>, se_firmware_final_versions: Array<Id>, osu_versions: Array<Id>, application_versions: Array<Id>, date_creation: string, date_last_modified: string}
Properties
McuVersion
Type: {id: Id, mcu: Id, name: string, description: (string | null | undefined), providers: Array<Id>, from_bootloader_version: string, device_versions: Array<Id>, se_firmware_final_versions: Array<Id>, date_creation: string, date_last_modified: string}
Properties
SeedPhraseType
FirmwareInfo
Type: {isBootloader: boolean, rawVersion: string, targetId: number, seVersion: string?, mcuVersion: string, mcuBlVersion: string?, mcuTargetId: number?, seTargetId: number?, flags: Buffer, bootloaderVersion: string?, hardwareVersion: number?, languageId: number?}
Properties
OsuFirmware
Type: any
FinalFirmware
Type: any
FirmwareUpdateContext
Type: {osu: OsuFirmware, final: FinalFirmware, shouldFlashMCU: boolean}
Properties
ApplicationVersion
Type: {id: Id, name: string, version: string, app: Id, description: (string | null | undefined), display_name: string, icon: string, notes: (string | null | undefined), perso: string, hash: string, firmware: string, firmware_key: string, delete: string, delete_key: string, device_versions: Array<Id>, se_firmware_final_versions: Array<Id>, providers: Array<Id>, date_creation: string, date_last_modified: string, type: AppType?, bytes: (number | null | undefined), warning: (string | null | undefined), currency: CryptoCurrency?}
Properties
Application
Type: {id: Id, name: string, description: (string | null | undefined), application_versions: Array<ApplicationVersion>, providers: Array<Id>, category: Id, publisher: (Id | null | undefined), date_creation: string, date_last_modified: string, currencyId: (string | null | undefined), authorName: (string | null | undefined), supportURL: (string | null | undefined), contactURL: (string | null | undefined), sourceURL: (string | null | undefined)}
Properties
AppType
App
App is higher level on top of Application and ApplicationVersion
with all fields Live needs and in normalized form (but still serializable)
Type: {id: Id, name: string, displayName: string, version: string, currencyId: (string | null | undefined), description: (string | null | undefined), dateModified: string, icon: string, authorName: (string | null | undefined), supportURL: (string | null | undefined), contactURL: (string | null | undefined), sourceURL: (string | null | undefined), hash: string, perso: string, firmware: string, firmware_key: string, delete: string, delete_key: string, dependencies: Array<string>, bytes: (number | null | undefined), warning: (string | null | undefined), indexOfMarketCap: number, isDevTools: boolean, type: AppType}
Properties
Category
Type: {id: Id, name: string, description: (string | null | undefined), providers: Array<Id>, applications: Array<Id>, date_creation: string, date_last_modified: string}
Properties
SocketEvent
Type: ({type: "bulk-progress"
, progress: number, index: number, total: number} | {type: "result"
, payload: any} | {type: "warning"
, message: string} | {type: "device-permission-requested"
} | {type: "device-permission-granted"
} | {type: "exchange-before"
, nonce: number, apdu: Buffer} | {type: "exchange"
, nonce: number, apdu: Buffer, data: Buffer, status: number} | {type: "opened"
} | {type: "closed"
})
NFTStandard
Type: ("ERC721"
| "ERC1155"
)
NFTMediaSize
Type: ("preview"
| "big"
| "original"
)
NFTMedias
Type: Record<NFTMediaSize, {uri: string, mediaType: string}>
NFTMetadata
Type: {tokenName: (string | null), nftName: (string | null), medias: NFTMedias, description: (string | null), properties: Array<Record<("key"
| "value"
), string>>, links: Record<NFTMetadataLinksProviders, string>, staxImage: string?}
Properties
NFTCollectionMetadata
Type: {tokenName: (string | null)}
Properties
ProtoNFT
Type: {id: string, tokenId: string, amount: BigNumber, contract: string, standard: NFTStandard, currencyId: CryptoCurrencyIds, metadata: NFTMetadata?}
Properties
ProtoNFTRaw
Type: any
NFT
Type: any
NFTMetadataLinksProviders
Type: ("opensea"
| "rarible"
| "explorer"
)
NFTMetadataResponse
Type: {status: (200
| 404
| 500
), result: ({contract: string, tokenId: string, tokenName: (string | null), nftName: (string | null), medias: NFTMedias, description: (string | null), properties: Array<Record<("key"
| "value"
), string>>, links: Record<NFTMetadataLinksProviders, string>, staxImage: string?} | null)?}
Properties
status
(200
| 404
| 500
) result
({contract: string, tokenId: string, tokenName: (string | null), nftName: (string | null), medias: NFTMedias, description: (string | null), properties: Array<Record<("key"
| "value"
), string>>, links: Record<NFTMetadataLinksProviders, string>, staxImage: string?} | null)?
NFTCollectionMetadataResponse
Type: {status: (200
| 404
| 500
), result: ({contract: string, tokenName: (string | null)} | null)?}
Properties
status
(200
| 404
| 500
) result
({contract: string, tokenName: (string | null)} | null)?
FloorPrice
Type: {ticker: string, value: number}
Properties
OperationType
Type: ("IN"
| "OUT"
| "NONE"
| "CREATE"
| "REVEAL"
| "DELEGATE"
| "UNDELEGATE"
| "REDELEGATE"
| "REWARD"
| "FEES"
| "FREEZE"
| "UNFREEZE"
| "WITHDRAW_EXPIRE_UNFREEZE"
| "UNDELEGATE_RESOURCE"
| "LEGACY_UNFREEZE"
| "VOTE"
| "REWARD_PAYOUT"
| "BOND"
| "UNBOND"
| "WITHDRAW_UNBONDED"
| "SET_CONTROLLER"
| "SLASH"
| "NOMINATE"
| "CHILL"
| "APPROVE"
| "OPT_IN"
| "OPT_OUT"
| "LOCK"
| "UNLOCK"
| "WITHDRAW"
| "REVOKE"
| "ACTIVATE"
| "REGISTER"
| "NFT_IN"
| "NFT_OUT"
| "STAKE"
| "UNSTAKE"
| "WITHDRAW_UNSTAKED"
)
Operation
An Operation is the Ledger Live abstraction of a transaction for any blockchain
Type: {id: string, hash: string, type: OperationType, value: BigNumber, fee: BigNumber, senders: Array<string>, recipients: Array<string>, blockHeight: (number | null | undefined), blockHash: (string | null | undefined), transactionSequenceNumber: number?, accountId: string, standard: (NFTStandard | string)?, operator: string?, contract: string?, tokenId: string?, date: Date, hasFailed: boolean?, subOperations: Array<Operation>?, internalOperations: Array<Operation>?, nftOperations: Array<Operation>?, transactionRaw: TransactionCommonRaw?, extra: Extra}
Properties
A pagination config holds the user's pagination state
this is a state that usually should leave during the app lifecycle, but is not persisted
it drives the number of operations to poll in accounts
when a user paginate more, the number should accordingly be incremented
The UI should manage scrolling ahead of time (e.g. if 30 ops is displayed and UI have pages of 20 ops, the UI can already request to poll 70 ops so it have 2 pages in advance)
The UI must always do max() to keep the increasing the counter and not going back to lower value: that optim the sync to not recompute things too much
Type: {operationsPerAccountId: Record<string, number>?, operations: number?}
Properties
SyncConfig
Type: {paginationConfig: PaginationConfig, withoutSynchronize: boolean?, blacklistedTokenIds: Array<string>?}
Properties
BalanceHistoryData
Type: {date: Date, value: number}
Properties
BalanceHistory
Type: Array<BalanceHistoryData>
BalanceHistoryRaw
Type: Array<[string, string]>
BalanceHistoryWithCountervalue
Type: Array<any>
ValueChange
Type: {percentage: (number | null | undefined), value: number}
Properties
AccountPortfolio
Type: {history: BalanceHistoryWithCountervalue, countervalueAvailable: boolean, countervalueReceiveSum: number, countervalueSendSum: number, cryptoChange: ValueChange, countervalueChange: ValueChange}
Properties
CurrencyPortfolio
Type: {history: BalanceHistoryWithCountervalue, countervalueAvailable: boolean, histories: Array<BalanceHistoryWithCountervalue>, accounts: AccountLikeArray, cryptoChange: ValueChange, range: PortfolioRange, countervalueChange: ValueChange}
Properties
Portfolio
Type: {balanceHistory: BalanceHistory, balanceAvailable: boolean, availableAccounts: Array<AccountLike>, unavailableCurrencies: Array<(CryptoCurrency | TokenCurrency)>, accounts: Array<AccountLike>, range: PortfolioRange, histories: Array<BalanceHistoryWithCountervalue>, countervalueReceiveSum: number, countervalueSendSum: number, countervalueChange: ValueChange}
Properties
PortfolioRangeConfig
Type: {count: number?, granularityId: GranularityId, startOf: function (arg0: Date): Date, increment: number}
Properties
PortfolioRange
Type: ("all"
| "year"
| "month"
| "week"
| "day"
)
AssetsDistribution
Type: {isAvailable: boolean, list: Array<DistributionItem>, showFirst: number, sum: number}
Properties
PostOnboardingActionId
Unique identifier of a post onboarding action.
getNavigationParams
Navigation params when the user presses the button for this action
- In LLM, this will be used like this:
navigation.navigate(...getNavigationParams)
Type: function (options: {deviceModelId: DeviceModelId}): ([any] | [any, any])
startAction
The function to call when the user presses the button for this action
Type: function (args: {openModalCallback: function (modalName: any): void, navigationCallback: function (route: string): void, deviceModelId: DeviceModelId}): void
Optional Redux dispatch function
PostOnboardingAction
All necessary information for complete integration of a post onboarding
action.
Type: any
disabled
Allow to display the action without letting the user access its flow
Type: boolean
featureFlagId
If this action is linked to a feature that is enabled by a feature flag,
use this property to identify the feature flag.
Type: FeatureId
Icon
Icon displayed for this action in the post onboarding hub.
Type: function (props: {size: ("XS"
| "S"
| "M"
| "L"
| "XL"
)?, color: string?, style: object?}): any
title
Title displayed for this action in the post onboarding hub.
Type: string
titleCompleted
Title displayed for this action in the post onboarding hub when the action
is completed.
Type: string
description
Description displayed for this action in the post onboarding hub.
Type: string
tagLabel
Tag displayed for this action in the post onboarding hub.
Type: string
Will appear in an success alert at the bottom of the post-onboarding hub
after completing this action.
Type: string
buttonLabelForAnalyticsEvent
Value to use in the "button" property of the event sent when the user
triggers the action by pressing the button in the post onboarding hub.
Type: string
PostOnboardingActionState
State of a post onboarding action.
Type: {completed: boolean}
Properties
completed
Whether the user has completed this action. This will be reflected in the
UI of the post onboarding hub.
Type: boolean
PostOnboardingState
To be used for a redux reducer.
Keeps all necessary information about the state of the post onboarding hub
and can be persisted in storage.
Type: {deviceModelId: (DeviceModelId | null), walletEntryPointDismissed: boolean, actionsToComplete: Array<PostOnboardingActionId>, actionsCompleted: any, lastActionCompleted: (PostOnboardingActionId | null), postOnboardingInProgress: boolean}
Properties
deviceModelId
Model Id of the device for which the post onboarding was started.
Type: (DeviceModelId | null)
walletEntryPointDismissed
Did the user dismiss the post onboarding entry point on the wallet page.
Type: boolean
actionsToComplete
List of all actions that have to be completed in this post onboarding
(whether they are completed or).
This is used to populate the list of actions in the post onboarding hub UI.
Type: Array<PostOnboardingActionId>
actionsCompleted
"completed" state for each action.
Type: any
lastActionCompleted
Last action that the user has completed.
This is used to display potentially different content in the post
onboarding hub UI depending on the last action that was completed.
Type: (PostOnboardingActionId | null)
postOnboardingInProgress
Did the user started the PostOnboarding without closing or finishing it ?
Type: boolean
PostOnboardingHubState
Digest of the store & list of actions into something directly consumable
by UI. (All UI data will be in there).
Type: {deviceModelId: (DeviceModelId | null), lastActionCompleted: (PostOnboardingAction | null), actionsState: Array<any>, postOnboardingInProgress: boolean}
Properties
SwapOperation
Type: {provider: string, swapId: string, status: string, receiverAccountId: string, tokenId: string?, operationId: string, fromAmount: BigNumber, toAmount: BigNumber}
Properties
SwapOperationRaw
Type: {provider: string, swapId: string, status: string, receiverAccountId: string, tokenId: string?, operationId: string, fromAmount: string, toAmount: string}
Properties
SignedOperation
Type: {operation: Operation, signature: string, rawData: Record<string, any>?, expirationDate: Date?}
Properties
SignedOperationRaw
Type: {operation: OperationRaw, signature: string, rawData: Record<string, any>?, expirationDate: string?}
Properties
operation
OperationRaw signature
string rawData
Record<string, any>? expirationDate
string?
SignOperationEvent
Type: ({type: "device-streaming"
, progress: number, index: number, total: number} | {type: "device-signature-requested"
} | {type: "device-signature-granted"
} | {type: "signed"
, signedOperation: SignedOperation})
SignOperationEventRaw
Type: ({type: "device-streaming"
, progress: number, index: number, total: number} | {type: "device-signature-requested"
} | {type: "device-signature-granted"
} | {type: "signed"
, signedOperation: SignedOperationRaw})
TransactionCommon
Transaction is a generic object that holds all state for all transactions
there are generic fields and coin specific fields. That's why almost all fields are optionals
Type: {amount: BigNumber, recipient: string, recipientDomain: DomainServiceResolution?, useAllAmount: boolean?, subAccountId: (string | null | undefined)?, feesStrategy: ("slow"
| "medium"
| "fast"
| "custom"
| null)?}
Properties
amount
BigNumber recipient
string recipientDomain
DomainServiceResolution? useAllAmount
boolean? subAccountId
(string | null | undefined)? feesStrategy
("slow"
| "medium"
| "fast"
| "custom"
| null)?
TransactionCommonRaw
Type: {amount: string, recipient: string, recipientDomain: DomainServiceResolution?, useAllAmount: boolean?, subAccountId: (string | null | undefined)?, feesStrategy: ("slow"
| "medium"
| "fast"
| "custom"
| null)?}
Properties
amount
string recipient
string recipientDomain
DomainServiceResolution? useAllAmount
boolean? subAccountId
(string | null | undefined)? feesStrategy
("slow"
| "medium"
| "fast"
| "custom"
| null)?
FeeStrategy
User can have 3 differents choice for their fee
Most of the time mid is low * 1.25 and high is low * 1.5
They are some exception as eth that got his own meter
Type: {amount: BigNumber, displayedAmount: BigNumber?, txParameters: FeeStrategyTxParameters?, label: string, unit: Unit?, disabled: boolean?, extra: Record<string, BigNumber>?}
Properties
amount
BigNumber displayedAmount
BigNumber? txParameters
FeeStrategyTxParameters? label
string unit
Unit? disabled
boolean? extra
Record<string, BigNumber>?
TransactionStatusCommon
TransactionStatus is a view of Transaction with general info to be used on the UI and status info.
Type: {errors: Record<string, Error>, warnings: Record<string, Error>, estimatedFees: BigNumber, amount: BigNumber, totalSpent: BigNumber, recipientIsReadOnly: boolean?}
Properties
errors
Record<string, Error> warnings
Record<string, Error> estimatedFees
BigNumber amount
BigNumber totalSpent
BigNumber recipientIsReadOnly
boolean?
TransactionStatusCommonRaw
Type: {errors: Record<string, string>, warnings: Record<string, string>, estimatedFees: string, amount: string, totalSpent: string, useAllAmount: boolean?, recipientIsReadOnly: boolean?}
Properties