Commit 2b071dc
File tree
1,990 files changed
+703238
-867827
lines changed- .cursor
- commands
- rules
- .github
- workflows
- apps
- cli
- scripts
- src
- commands/ptx
- ledger-live-desktop
- src
- helpers
- main
- db
- mvvm
- components/PageHeader
- features
- Analytics
- __integrations__
- DynamicContent/components
- PortfolioContentCards
- FlowWizard
- __tests__
- MarketBanner
- __tests__
- components
- FearAndGreed
- hooks
- utils
- MarketPerformanceWidget
- __integrations__
- __tests__
- components
- utils
- Market
- components
- MarketRowItem
- hooks
- __tests__
- MemoTag/components
- Onboarding/screens/SyncOnboardingCompanion/__tests__
- Portfolio
- __integrations__
- components
- Balance
- PortfolioGrid
- Trend
- hooks
- __tests__
- utils
- __tests__
- Send
- components
- __tests__
- context
- hooks
- screens
- Confirmation/hooks
- __tests__
- Recipient
- components
- Signature/hooks
- __tests__
- renderer
- actions
- analytics
- components
- AccountsList
- AnalyticsConsole
- BalanceInfos
- ContentCards/ActionCard
- ContextMenu
- CustomImage
- DeviceAction
- MainSideBar
- ModalStepper
- Modal
- NotEnoughFundsToUnstake
- Onboarding
- Screens
- SelectDevice
- Tutorial
- OperationsList
- Select
- SideBar
- SyncOnboarding/Manual/EarlySecurityChecks
- TopBar/NotificationIndicator
- WebPlatformPlayer
- debug
- drawers/SwapOperationDetails
- families
- algorand
- OptInFlowModal/steps
- Rewards/ClaimRewardsFlowModal
- steps
- aptos
- RestakingFlowModal/steps
- StakingFlowModal/steps
- UnstakingFlowModal/steps
- WithdrawingFlowModal/steps
- bitcoin
- canton
- OnboardModal
- PendingTransferProposals
- cardano
- DelegationFlowModal/steps
- UndelegateFlowModal/steps
- celo
- ActivateFlowModal/steps
- LockFlowModal/steps
- RevokeFlowModal/steps
- SimpleOperationFlowModal/steps
- UnlockFlowModal/steps
- VoteFlowModal/steps
- WithdrawFlowModal/steps
- cosmos
- ClaimRewardsFlowModal/steps
- DelegationFlowModal/steps
- RedelegationFlowModal/steps
- UndelegationFlowModal/steps
- evm/StakeFlowModal
- component
- hedera
- ClaimRewardsFlowModal/steps
- DelegationFlowModal/steps
- RedelegationFlowModal/steps
- UndelegationFlowModal/steps
- kaspa
- multiversx/components/Modals
- Claim/steps
- Delegate/steps
- Undelegate/steps
- Withdraw/steps
- near
- StakingFlowModal/steps
- UnstakingFlowModal/steps
- WithdrawingFlowModal/steps
- polkadot
- BondFlowModal/steps
- NominationFlowModal/steps
- Nomination
- RebondFlowModal/steps
- SimpleOperationFlowModal/steps
- UnbondFlowModal/steps
- solana
- DelegationActivateFlowModal/steps
- DelegationDeactivateFlowModal/steps
- DelegationFlowModal
- steps
- DelegationReactivateFlowModal/steps
- DelegationWithdrawFlowModal/steps
- stellar/AddAssetModal
- steps
- sui
- DelegationFlowModal
- steps
- UnstakingFlowModal/steps
- tezos
- DelegateFlowModal/steps
- hooks
- useDeeplinking
- __tests__
- handlers
- __tests__
- icons/device/interactions
- Blue
- NanoS
- NanoX
- modals
- CreateLocalManifest
- DisablePasswordModal
- NoFundsStake
- PasswordModal
- Receive/steps
- RepairModal
- components
- Send/steps
- SettingsAccount
- SystemLanguageAvailable
- reducers
- screens
- USBTroubleshooting/solutions
- accounts
- AccountGridItem
- AccountRowItem
- account
- asset
- dashboard
- AssetDistribution
- exchange/Swap2
- Form
- manager
- DeviceDashboard
- AppsList
- DeviceInformationSummary
- market
- MarketCoin/components
- MarketList/components/MarketRowItem
- components
- platform/v2/Catalog
- Browse/Result
- Card
- settings/sections
- About
- Accounts
- Developer
- CryptoAssetsList
- FeatureFlagsSettings
- WalletFeaturesDevTool
- components
- hooks
- WalletSync/Generator
- General
- styles
- styled
- static/i18n
- ar
- de
- en
- es
- fr
- ja
- ko
- pt-BR
- ru
- th
- tr
- zh
- tests
- component
- fixtures
- handlers
- fixtures/fearAndGreed
- models
- specs
- accounts
- account.spec.ts-snapshots
- delegate.smoke.spec.ts-snapshots
- families
- general
- layout.spec.ts-snapshots
- passwordlock.spec.ts-snapshots
- portfolio.spec.ts-snapshots
- updater.spec.ts-snapshots
- onboarding
- postOnboarding
- post-onboarding.spec.ts-snapshots
- recover
- services
- earn.spec.ts-snapshots
- ethereumStaking.spec.ts-snapshots
- userdata
- utils
- tools/rspack
- ledger-live-mobile
- __tests__
- android/app
- src/main
- e2e
- bridge
- models
- specs
- src
- actions
- analytics
- components
- AccountSubHeader
- BleDevicePairingFlow
- BleDevicePairingContent
- Carousel
- CustomImage
- CustomLockScreenDeviceAction
- DateFormat
- DeviceAction
- InstallSetOfApps
- FabActions
- hooks
- modals
- Graph
- MarketQuickActions
- NoFunds
- OperationRow
- PostOnboarding
- ProviderIcon
- RecoverBanner
- RequiresBLE
- RequiresCameraPermissions
- RequiresLocation
- RootDrawer/InitialDrawers
- SelectDevice2
- TabBar
- Toast
- TranslatedError
- WalletTab
- Web3AppWebview
- WebPTXPlayer
- WebPlatformPlayer
- WebReceivePlayer
- WebViewScreen
- const
- contentCards/layouts
- carousel
- grid
- context
- AuthPass
- dynamicContent
- ContentCardsCategory
- families
- algorand
- OptInFlow
- Rewards
- ClaimRewardsFlow
- bitcoin
- canton
- Onboard/steps
- __tests__
- PendingTransferProposals
- cardano
- DelegationFlow
- Delegations
- UndelegationFlow
- casper
- celo
- ActivateFlow
- Delegations
- LockFlow
- RegistrationFlow
- RevokeFlow
- UnlockFlow
- VoteFlow
- WithdrawFlow
- cosmos
- ClaimRewardsFlow
- DelegationFlow
- Delegations
- RedelegationFlow
- UndelegationFlow
- evm
- EditTransactionFlow
- EvmCustomFees
- StakingDrawer
- hedera
- AssociateTokenFlow
- ClaimRewardsFlow
- DelegationFlow
- Delegations
- RedelegationFlow
- UndelegationFlow
- internet_computer
- kaspa
- mina
- multiversx
- components
- Body/components
- Delegations
- components
- Delegation
- Right
- Drawer/hooks
- Rewards
- Unbondings
- components/Unbonding
- Details
- Flows
- Claim
- components
- PickMethod
- PickValidator/components/Item
- ValidationSuccess
- Delegate
- components
- EarnRewards
- PickAmount
- PickValidator
- components/Item
- SetDelegation
- ValidationSuccess
- Undelegate
- components
- PickAmount
- ValidationSuccess
- Withdraw
- components
- ValidationSuccess
- WithdrawFunds
- Summary
- near
- StakingFlow
- Staking
- UnstakingFlow
- WithdrawingFlow
- polkadot
- BondFlow
- NominateFlow
- Nominations
- RebondFlow
- SimpleOperationFlow
- UnbondFlow
- solana
- DelegationFlow
- Delegations
- Token2022
- stacks
- stellar
- AddAssetFlow
- sui
- StakingFlow
- Staking
- UnstakingFlow
- tezos
- DelegationFlow
- ton
- tron
- VoteFlow/01-SelectValidator
- Votes
- vechain
- xrp
- hooks
- images/portfolio
- locales
- ar
- de
- en
- es
- fr
- ja
- ko
- pt-BR
- ru
- th
- tr
- zh
- logic/postOnboarding
- mvvm
- components
- CloseWithConfirmation
- EmptyList
- AssetsEmptyList
- components
- FearAndGreed
- components
- FearAndGreedCard
- FearAndGreedTitle
- ProviderInterstitial
- features
- Accounts
- __integrations__
- components
- AccountListDrawer
- AccountListEmpty
- AccountQuickActionsDrawer
- AddAccountButton
- AddFundsButton
- screens
- AccountsList
- AddAccountSuccess
- AddAccountWarning
- AddAccount/components/SelectAddAccountMethod
- NoAssociatedAccountsView
- ScanDeviceAccounts
- components
- AddressTypeTooltip
- components
- Analytics
- __integrations__
- screens
- AnalyticsMain
- components
- DetailedAllocation
- components
- AppBlockers/components
- AppGeoBlocker
- __integrations__
- AppVersionBlocker
- __integrations__
- Assets/screens/AssetsList
- DeviceSelection
- DynamicContent/components
- FirmwareUpdate/components/UpdateBanner
- LNSUpsell/components/LNSUpsellBanner
- LandingPages
- __integrations__
- screens
- GenericLandingPage
- LargeMoverLandingPage
- components
- hooks
- LedgerSyncEntryPoint/components
- CardEntryPoint
- CtaEntryPoint
- MarketBanner
- __integrations__
- components
- BannerStates
- ErrorState
- MarketBannerView
- MarketTile
- SkeletonState
- ViewAllTile
- hooks
- Market
- __integrations__
- components
- MarketListHeader
- MarketRowItem
- screens
- MarketCurrencySelect
- components/EmptyList
- MarketDetail
- components
- MarketGraph
- MarketStats
- MarketList
- __tests__
- components
- BottomSection
- EmptyStarredCoins
- ListEmpty
- SearchHeader
- MemoTag/components
- ModularDrawer
- components
- hooks
- screens
- AccountSelection
- AssetSelection/components/SearchInputContainer
- NftEntryPoint
- NotificationsPrompt
- __integrations__
- hooks
- screens
- Portfolio
- __integrations__
- components
- PortfolioAllocationsSection
- PortfolioAssetsSection
- PortfolioBannersSection
- PortfolioCarouselSection
- PortfolioEmptyStateSection
- PortfolioHeaderSection
- PortfolioOperationsSection
- screens
- Portfolio
- ReadOnly
- Reborn
- components
- BuyDeviceBanner
- SetupDeviceBanner
- screens
- PostBuySuccess
- UpsellFlex
- Receive/drawers
- WalletSync
- components
- Activation
- FollowInstructions
- ManageInstances
- ManageKey
- Synchronize
- hooks
- screens
- Activation
- DeviceSelection
- ManageInstances
- ManageKey
- Manage
- Synchronize
- Web3Hub
- components
- Disclaimer
- ManifestRow
- ManifestsList
- ManifestItem
- screens
- Web3HubApp/components/Web3Player
- SelectAccountModal
- AccountHeader
- AccountsList/AddAccountItem
- NetworkHeader
- Web3HubMain
- components/Header
- Web3HubSearch
- components
- Header
- SearchList
- utils/api/mocks
- WelcomePage
- components
- hooks
- hooks
- __tests__
- storage/mmkvStorageWrapper
- utils
- __tests__
- reducers
- screens
- AccountSettings
- Accounts
- ReadOnly
- Account
- ReadOnly
- hooks
- AnalyticsOptInPrompt
- variantA
- variantB
- Analytics
- Operations
- Assets
- ClaimRewards
- CustomError
- CustomImage
- DeviceConnect
- Discover
- FeatureFlagsSettings
- Fees
- FirmwareUpdate
- FreezeFunds
- MyLedgerChooseDevice
- MyLedgerDevice
- AppsList
- Device
- Modals
- NotificationCenter
- Snackbar
- NpsRatingsModal
- Onboarding
- steps
- Cards
- setupDevice
- drawers
- scenes
- OperationDetails
- PTX/Earn
- PairDevices
- Platform
- Catalog
- v2/Catalog
- Search
- Portfolio
- ReadOnly
- PostOnboarding
- Protect
- PurchaseDevice
- RatingsModal
- ReceiveFunds
- NeedMemoTagModal
- ReceiveSecurityModal
- SanctionedAccountModal
- RequestAccount
- SendFunds
- Settings
- About
- Accounts
- CryptoAssets/Currencies
- Debug
- Features
- Performance
- Developer
- Experimental
- General
- Help
- Notifications
- SignMessage
- Components
- Swap
- Form
- Modal
- Summary
- TxForm
- History
- LiveApp
- SubScreens
- SyncOnboarding
- TwoStepStepper
- UnfreezeFunds
- VerifyAccount
- WalletCentricAsset
- ReadOnly
- WalletCentricSections
- OperationsHistory
- utils
- web-tools
- src
- pages
- repl/components
- trustchain/components
- e2e
- desktop
- tests
- component
- fixtures
- page
- dialog
- modal
- specs
- userdata
- mobile
- page
- accounts
- liveApps
- onboarding
- scripts
- specs
- buySell
- deposit
- ledgerSync
- portfolio
- send
- sendInvalid
- sendValidAddress
- subAccount
- splTokensErrorMessages
- swap/otherTestCases
- userdata
- features
- market-banner
- src
- components/MarketBanner
- __tests__
- utils
- libs
- client-ids
- coin-framework
- src/currencies
- coin-modules-monitoring
- coin-modules
- coin-aleo
- coin-algorand
- coin-aptos
- coin-bitcoin
- coin-canton
- src
- bridge
- network
- coin-cardano
- coin-casper
- coin-celo
- coin-concordium
- coin-cosmos
- coin-evm
- docs/evm-family-integration-process
- src
- __tests__/unit
- adapters
- api/node
- editTransaction/__snapshots__
- adapters
- api
- logic
- network/node
- test
- coin-filecoin
- coin-hedera
- src/logic
- coin-icon
- coin-internet_computer
- coin-kaspa
- coin-mina
- coin-module-boilerplate
- coin-multiversx
- coin-near
- coin-polkadot
- coin-solana
- src
- coin-stacks
- coin-stellar
- src/test
- coin-sui
- coin-tezos
- src/test
- coin-ton
- coin-tron
- src/network
- coin-vechain
- coin-xrp
- src/test
- coin-tester-modules
- coin-tester-bitcoin
- src
- scenarii
- coin-tester-evm
- src
- coin-tester-polkadot
- src
- coin-tester-solana
- coin-tester
- src
- signers
- device-core
- device-react
- domain-service
- ethereum-provider
- scripts
- feature-flag-module
- scripts
- src
- ledger-live-common
- src
- __tests__
- migration
- test-helpers
- bridge
- generic-alpaca/tests
- currencies
- e2e/enum
- exchange
- providers
- swap
- families
- bitcoin
- evm
- hedera/__snapshots__
- kaspa
- solana
- stellar
- __snapshots__
- tezos
- xrp
- featureFlags
- walletFeaturesConfig
- hw/actions
- market
- modularDrawer/hooks
- platform
- wallet-api
- Exchange
- FeatureFlags
- ledgerjs/packages
- cryptoassets
- src
- hw-app-celo
- hw-app-concordium
- src
- hw-app-eth
- hw-app-vet
- swift-bridge-hw-app-eth
- types-live
- src
- live-countervalues-react
- live-countervalues
- src
- live-currency-format
- src
- __snapshots__
- live-dmk-desktop
- src
- hooks
- transport
- tests/__mocks__
- live-dmk-mobile
- src
- hooks
- transport
- live-dmk-speculos
- src/transport
- live-signer-aleo
- live-signer-canton
- live-signer-evm
- live-signer-solana
- live-wallet
- test-utils
- ui
- examples
- next.js
- webpack.js
- packages
- native/src/components/Cards/NewBannerCard
- react
- src
- components
- cta/Link
- form
- Radio
- SelectInput
- pre-ldls/components
- AccountItem
- AssetItem
- CardButton
- NetworkItem
- Search
- patches
- tests/dummy-wallet-app
- public
- src
- tools/actions
- build-checks
- build
- src
- change-product-name
- build
- composites
- run-coin-tester
- setup-coin-tester-env
- desktop-report-build
- build
- generate-bot-super-report
- build
- generate-release-message
- build
- get-package-infos
- build
- get-workflow-artifacts-id
- build
- live-common-affected
- build
- mobile-performance-test
- build
- prepare-comment-screenshots
- build
- submit-bot-report
- build
- turbo-affected
- build
- turborepo-gh-cache
- build
- turborepo-s3-cache
- build
- upload-images
- build
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
1,990 files changed
+703238
-867827
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
0 commit comments