@ledgerhq/coin-framework 0.3.6 → 0.3.7-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +8 -46
- package/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +27 -1
- package/lib/account/accountId.d.ts +16 -0
- package/lib/account/accountId.d.ts.map +1 -0
- package/lib/account/accountId.js +67 -0
- package/lib/account/accountId.js.map +1 -0
- package/lib/account/accountName.d.ts +14 -0
- package/lib/account/accountName.d.ts.map +1 -0
- package/lib/account/accountName.js +14 -0
- package/lib/account/accountName.js.map +1 -0
- package/lib/account/balanceHistoryCache.d.ts +28 -0
- package/lib/account/balanceHistoryCache.d.ts.map +1 -0
- package/lib/account/balanceHistoryCache.js +132 -0
- package/lib/account/balanceHistoryCache.js.map +1 -0
- package/lib/account/balanceHistoryCache.test.d.ts +2 -0
- package/lib/account/balanceHistoryCache.test.d.ts.map +1 -0
- package/lib/account/balanceHistoryCache.test.js +21 -0
- package/lib/account/balanceHistoryCache.test.js.map +1 -0
- package/lib/account/groupOperations.d.ts +17 -0
- package/lib/account/groupOperations.d.ts.map +1 -0
- package/lib/account/groupOperations.js +122 -0
- package/lib/account/groupOperations.js.map +1 -0
- package/lib/account/helpers.d.ts +46 -0
- package/lib/account/helpers.d.ts.map +1 -0
- package/lib/account/helpers.js +296 -0
- package/lib/account/helpers.js.map +1 -0
- package/lib/account/helpers.test.d.ts +2 -0
- package/lib/account/helpers.test.d.ts.map +1 -0
- package/lib/account/helpers.test.js +409 -0
- package/lib/account/helpers.test.js.map +1 -0
- package/lib/account/index.d.ts +10 -0
- package/lib/account/index.d.ts.map +1 -0
- package/lib/account/index.js +26 -0
- package/lib/account/index.js.map +1 -0
- package/lib/account/ordering.d.ts +10 -0
- package/lib/account/ordering.d.ts.map +1 -0
- package/lib/account/ordering.js +80 -0
- package/lib/account/ordering.js.map +1 -0
- package/lib/account/pending.d.ts +4 -0
- package/lib/account/pending.d.ts.map +1 -0
- package/lib/account/pending.js +53 -0
- package/lib/account/pending.js.map +1 -0
- package/lib/account/serialization.d.ts +6 -0
- package/lib/account/serialization.d.ts.map +1 -0
- package/lib/account/serialization.js +108 -0
- package/lib/account/serialization.js.map +1 -0
- package/lib/account/support.d.ts +7 -0
- package/lib/account/support.d.ts.map +1 -0
- package/lib/account/support.js +45 -0
- package/lib/account/support.js.map +1 -0
- package/lib/account.test.d.ts +2 -0
- package/lib/account.test.d.ts.map +1 -0
- package/lib/account.test.js +180 -0
- package/lib/account.test.js.map +1 -0
- package/lib/bot/bot-test-context.d.ts +3 -0
- package/lib/bot/bot-test-context.d.ts.map +1 -0
- package/lib/bot/bot-test-context.js +26 -0
- package/lib/bot/bot-test-context.js.map +1 -0
- package/lib/bot/bot-test-context.test.d.ts +2 -0
- package/lib/bot/bot-test-context.test.d.ts.map +1 -0
- package/lib/bot/bot-test-context.test.js +41 -0
- package/lib/bot/bot-test-context.test.js.map +1 -0
- package/lib/bot/formatters.d.ts +2 -0
- package/lib/bot/formatters.d.ts.map +1 -0
- package/lib/bot/formatters.js +30 -0
- package/lib/bot/formatters.js.map +1 -0
- package/lib/bot/specs.d.ts +50 -0
- package/lib/bot/specs.d.ts.map +1 -0
- package/lib/bot/specs.js +181 -0
- package/lib/bot/specs.js.map +1 -0
- package/lib/bot/types.d.ts +177 -0
- package/lib/bot/types.d.ts.map +1 -0
- package/lib/bot/types.js +3 -0
- package/lib/bot/types.js.map +1 -0
- package/lib/bridge/getAddressWrapper.d.ts +5 -0
- package/lib/bridge/getAddressWrapper.d.ts.map +1 -0
- package/lib/bridge/getAddressWrapper.js +36 -0
- package/lib/bridge/getAddressWrapper.js.map +1 -0
- package/lib/bridge/jsHelpers.d.ts +59 -0
- package/lib/bridge/jsHelpers.d.ts.map +1 -0
- package/lib/bridge/jsHelpers.js +390 -0
- package/lib/bridge/jsHelpers.js.map +1 -0
- package/lib/cache.d.ts +11 -0
- package/lib/cache.d.ts.map +1 -0
- package/lib/cache.js +21 -0
- package/lib/cache.js.map +1 -0
- package/lib/currencies/BigNumberToLocaleString.d.ts +8 -0
- package/lib/currencies/BigNumberToLocaleString.d.ts.map +1 -0
- package/lib/currencies/BigNumberToLocaleString.js +62 -0
- package/lib/currencies/BigNumberToLocaleString.js.map +1 -0
- package/lib/currencies/BigNumberToLocaleString.test.d.ts +2 -0
- package/lib/currencies/BigNumberToLocaleString.test.d.ts.map +1 -0
- package/lib/currencies/BigNumberToLocaleString.test.js +108 -0
- package/lib/currencies/BigNumberToLocaleString.test.js.map +1 -0
- package/lib/currencies/CurrencyURIScheme.d.ts +13 -0
- package/lib/currencies/CurrencyURIScheme.d.ts.map +1 -0
- package/lib/currencies/CurrencyURIScheme.js +95 -0
- package/lib/currencies/CurrencyURIScheme.js.map +1 -0
- package/lib/currencies/chopCurrencyUnitDecimals.d.ts +3 -0
- package/lib/currencies/chopCurrencyUnitDecimals.d.ts.map +1 -0
- package/lib/currencies/chopCurrencyUnitDecimals.js +29 -0
- package/lib/currencies/chopCurrencyUnitDecimals.js.map +1 -0
- package/lib/currencies/formatCurrencyUnit.d.ts +33 -0
- package/lib/currencies/formatCurrencyUnit.d.ts.map +1 -0
- package/lib/currencies/formatCurrencyUnit.js +109 -0
- package/lib/currencies/formatCurrencyUnit.js.map +1 -0
- package/lib/currencies/formatShort.d.ts +8 -0
- package/lib/currencies/formatShort.d.ts.map +1 -0
- package/lib/currencies/formatShort.js +27 -0
- package/lib/currencies/formatShort.js.map +1 -0
- package/lib/currencies/index.d.ts +13 -0
- package/lib/currencies/index.d.ts.map +1 -0
- package/lib/currencies/index.js +62 -0
- package/lib/currencies/index.js.map +1 -0
- package/lib/currencies/localeUtility.d.ts +8 -0
- package/lib/currencies/localeUtility.d.ts.map +1 -0
- package/lib/currencies/localeUtility.js +45 -0
- package/lib/currencies/localeUtility.js.map +1 -0
- package/lib/currencies/parseCurrencyUnit.d.ts +4 -0
- package/lib/currencies/parseCurrencyUnit.d.ts.map +1 -0
- package/lib/currencies/parseCurrencyUnit.js +18 -0
- package/lib/currencies/parseCurrencyUnit.js.map +1 -0
- package/lib/currencies/sanitizeValueString.d.ts +6 -0
- package/lib/currencies/sanitizeValueString.d.ts.map +1 -0
- package/lib/currencies/sanitizeValueString.js +56 -0
- package/lib/currencies/sanitizeValueString.js.map +1 -0
- package/lib/currencies/support.d.ts +8 -0
- package/lib/currencies/support.d.ts.map +1 -0
- package/lib/currencies/support.js +98 -0
- package/lib/currencies/support.js.map +1 -0
- package/lib/currencies/valueFromUnit.d.ts +9 -0
- package/lib/currencies/valueFromUnit.d.ts.map +1 -0
- package/lib/currencies/valueFromUnit.js +12 -0
- package/lib/currencies/valueFromUnit.js.map +1 -0
- package/lib/derivation.d.ts +232 -0
- package/lib/derivation.d.ts.map +1 -0
- package/lib/derivation.js +416 -0
- package/lib/derivation.js.map +1 -0
- package/lib/derivation.test.d.ts +2 -0
- package/lib/derivation.test.d.ts.map +1 -0
- package/lib/derivation.test.js +35 -0
- package/lib/derivation.test.js.map +1 -0
- package/lib/errors.d.ts +7 -0
- package/lib/errors.d.ts.map +1 -0
- package/lib/errors.js +7 -0
- package/lib/errors.js.map +1 -0
- package/lib/errors.test.d.ts +2 -0
- package/lib/errors.test.d.ts.map +1 -0
- package/lib/errors.test.js +20 -0
- package/lib/errors.test.js.map +1 -0
- package/lib/mocks/account.d.ts +26 -0
- package/lib/mocks/account.d.ts.map +1 -0
- package/lib/mocks/account.js +334 -0
- package/lib/mocks/account.js.map +1 -0
- package/lib/mocks/fixtures/nfts.d.ts +36 -0
- package/lib/mocks/fixtures/nfts.d.ts.map +1 -0
- package/lib/mocks/fixtures/nfts.js +401 -0
- package/lib/mocks/fixtures/nfts.js.map +1 -0
- package/lib/mocks/fixtures/nfts.test.d.ts +2 -0
- package/lib/mocks/fixtures/nfts.test.d.ts.map +1 -0
- package/lib/mocks/fixtures/nfts.test.js +20 -0
- package/lib/mocks/fixtures/nfts.test.js.map +1 -0
- package/lib/mocks/helpers.d.ts +15 -0
- package/lib/mocks/helpers.d.ts.map +1 -0
- package/lib/mocks/helpers.js +32 -0
- package/lib/mocks/helpers.js.map +1 -0
- package/lib/network.d.ts +9 -0
- package/lib/network.d.ts.map +1 -0
- package/lib/network.js +3 -0
- package/lib/network.js.map +1 -0
- package/lib/nft/nftId.d.ts +8 -0
- package/lib/nft/nftId.d.ts.map +1 -0
- package/lib/nft/nftId.js +18 -0
- package/lib/nft/nftId.js.map +1 -0
- package/lib/operation.d.ts +31 -0
- package/lib/operation.d.ts.map +1 -0
- package/lib/operation.js +211 -0
- package/lib/operation.js.map +1 -0
- package/lib/operation.test.d.ts +2 -0
- package/lib/operation.test.d.ts.map +1 -0
- package/lib/operation.test.js +116 -0
- package/lib/operation.test.js.map +1 -0
- package/lib/signer.d.ts +3 -0
- package/lib/signer.d.ts.map +1 -0
- package/lib/signer.js +3 -0
- package/lib/signer.js.map +1 -0
- package/lib/test-helpers/staticTime.d.ts +2 -0
- package/lib/test-helpers/staticTime.d.ts.map +1 -0
- package/lib/test-helpers/staticTime.js +10 -0
- package/lib/test-helpers/staticTime.js.map +1 -0
- package/lib/transaction/common.d.ts +26 -0
- package/lib/transaction/common.d.ts.map +1 -0
- package/lib/transaction/common.js +101 -0
- package/lib/transaction/common.js.map +1 -0
- package/lib-es/account/accountId.d.ts +16 -0
- package/lib-es/account/accountId.d.ts.map +1 -0
- package/lib-es/account/accountId.js +56 -0
- package/lib-es/account/accountId.js.map +1 -0
- package/lib-es/account/accountName.d.ts +14 -0
- package/lib-es/account/accountName.d.ts.map +1 -0
- package/lib-es/account/accountName.js +9 -0
- package/lib-es/account/accountName.js.map +1 -0
- package/lib-es/account/balanceHistoryCache.d.ts +28 -0
- package/lib-es/account/balanceHistoryCache.d.ts.map +1 -0
- package/lib-es/account/balanceHistoryCache.js +123 -0
- package/lib-es/account/balanceHistoryCache.js.map +1 -0
- package/lib-es/account/balanceHistoryCache.test.d.ts +2 -0
- package/lib-es/account/balanceHistoryCache.test.d.ts.map +1 -0
- package/lib-es/account/balanceHistoryCache.test.js +19 -0
- package/lib-es/account/balanceHistoryCache.test.js.map +1 -0
- package/lib-es/account/groupOperations.d.ts +17 -0
- package/lib-es/account/groupOperations.d.ts.map +1 -0
- package/lib-es/account/groupOperations.js +117 -0
- package/lib-es/account/groupOperations.js.map +1 -0
- package/lib-es/account/helpers.d.ts +46 -0
- package/lib-es/account/helpers.d.ts.map +1 -0
- package/lib-es/account/helpers.js +264 -0
- package/lib-es/account/helpers.js.map +1 -0
- package/lib-es/account/helpers.test.d.ts +2 -0
- package/lib-es/account/helpers.test.d.ts.map +1 -0
- package/lib-es/account/helpers.test.js +404 -0
- package/lib-es/account/helpers.test.js.map +1 -0
- package/lib-es/account/index.d.ts +10 -0
- package/lib-es/account/index.d.ts.map +1 -0
- package/lib-es/account/index.js +10 -0
- package/lib-es/account/index.js.map +1 -0
- package/lib-es/account/ordering.d.ts +10 -0
- package/lib-es/account/ordering.d.ts.map +1 -0
- package/lib-es/account/ordering.js +73 -0
- package/lib-es/account/ordering.js.map +1 -0
- package/lib-es/account/pending.d.ts +4 -0
- package/lib-es/account/pending.d.ts.map +1 -0
- package/lib-es/account/pending.js +48 -0
- package/lib-es/account/pending.js.map +1 -0
- package/lib-es/account/serialization.d.ts +6 -0
- package/lib-es/account/serialization.d.ts.map +1 -0
- package/lib-es/account/serialization.js +102 -0
- package/lib-es/account/serialization.js.map +1 -0
- package/lib-es/account/support.d.ts +7 -0
- package/lib-es/account/support.d.ts.map +1 -0
- package/lib-es/account/support.js +39 -0
- package/lib-es/account/support.js.map +1 -0
- package/lib-es/account.test.d.ts +2 -0
- package/lib-es/account.test.d.ts.map +1 -0
- package/lib-es/account.test.js +175 -0
- package/lib-es/account.test.js.map +1 -0
- package/lib-es/bot/bot-test-context.d.ts +3 -0
- package/lib-es/bot/bot-test-context.d.ts.map +1 -0
- package/lib-es/bot/bot-test-context.js +21 -0
- package/lib-es/bot/bot-test-context.js.map +1 -0
- package/lib-es/bot/bot-test-context.test.d.ts +2 -0
- package/lib-es/bot/bot-test-context.test.d.ts.map +1 -0
- package/lib-es/bot/bot-test-context.test.js +39 -0
- package/lib-es/bot/bot-test-context.test.js.map +1 -0
- package/lib-es/bot/formatters.d.ts +2 -0
- package/lib-es/bot/formatters.d.ts.map +1 -0
- package/lib-es/bot/formatters.js +26 -0
- package/lib-es/bot/formatters.js.map +1 -0
- package/lib-es/bot/specs.d.ts +50 -0
- package/lib-es/bot/specs.d.ts.map +1 -0
- package/lib-es/bot/specs.js +170 -0
- package/lib-es/bot/specs.js.map +1 -0
- package/lib-es/bot/types.d.ts +177 -0
- package/lib-es/bot/types.d.ts.map +1 -0
- package/lib-es/bot/types.js +2 -0
- package/lib-es/bot/types.js.map +1 -0
- package/lib-es/bridge/getAddressWrapper.d.ts +5 -0
- package/lib-es/bridge/getAddressWrapper.d.ts.map +1 -0
- package/lib-es/bridge/getAddressWrapper.js +34 -0
- package/lib-es/bridge/getAddressWrapper.js.map +1 -0
- package/lib-es/bridge/jsHelpers.d.ts +59 -0
- package/lib-es/bridge/jsHelpers.d.ts.map +1 -0
- package/lib-es/bridge/jsHelpers.js +378 -0
- package/lib-es/bridge/jsHelpers.js.map +1 -0
- package/lib-es/cache.d.ts +11 -0
- package/lib-es/cache.d.ts.map +1 -0
- package/lib-es/cache.js +17 -0
- package/lib-es/cache.js.map +1 -0
- package/lib-es/currencies/BigNumberToLocaleString.d.ts +8 -0
- package/lib-es/currencies/BigNumberToLocaleString.d.ts.map +1 -0
- package/lib-es/currencies/BigNumberToLocaleString.js +58 -0
- package/lib-es/currencies/BigNumberToLocaleString.js.map +1 -0
- package/lib-es/currencies/BigNumberToLocaleString.test.d.ts +2 -0
- package/lib-es/currencies/BigNumberToLocaleString.test.d.ts.map +1 -0
- package/lib-es/currencies/BigNumberToLocaleString.test.js +106 -0
- package/lib-es/currencies/BigNumberToLocaleString.test.js.map +1 -0
- package/lib-es/currencies/CurrencyURIScheme.d.ts +13 -0
- package/lib-es/currencies/CurrencyURIScheme.d.ts.map +1 -0
- package/lib-es/currencies/CurrencyURIScheme.js +87 -0
- package/lib-es/currencies/CurrencyURIScheme.js.map +1 -0
- package/lib-es/currencies/chopCurrencyUnitDecimals.d.ts +3 -0
- package/lib-es/currencies/chopCurrencyUnitDecimals.d.ts.map +1 -0
- package/lib-es/currencies/chopCurrencyUnitDecimals.js +25 -0
- package/lib-es/currencies/chopCurrencyUnitDecimals.js.map +1 -0
- package/lib-es/currencies/formatCurrencyUnit.d.ts +33 -0
- package/lib-es/currencies/formatCurrencyUnit.d.ts.map +1 -0
- package/lib-es/currencies/formatCurrencyUnit.js +104 -0
- package/lib-es/currencies/formatCurrencyUnit.js.map +1 -0
- package/lib-es/currencies/formatShort.d.ts +8 -0
- package/lib-es/currencies/formatShort.d.ts.map +1 -0
- package/lib-es/currencies/formatShort.js +20 -0
- package/lib-es/currencies/formatShort.js.map +1 -0
- package/lib-es/currencies/index.d.ts +13 -0
- package/lib-es/currencies/index.d.ts.map +1 -0
- package/lib-es/currencies/index.js +14 -0
- package/lib-es/currencies/index.js.map +1 -0
- package/lib-es/currencies/localeUtility.d.ts +8 -0
- package/lib-es/currencies/localeUtility.d.ts.map +1 -0
- package/lib-es/currencies/localeUtility.js +39 -0
- package/lib-es/currencies/localeUtility.js.map +1 -0
- package/lib-es/currencies/parseCurrencyUnit.d.ts +4 -0
- package/lib-es/currencies/parseCurrencyUnit.d.ts.map +1 -0
- package/lib-es/currencies/parseCurrencyUnit.js +14 -0
- package/lib-es/currencies/parseCurrencyUnit.js.map +1 -0
- package/lib-es/currencies/sanitizeValueString.d.ts +6 -0
- package/lib-es/currencies/sanitizeValueString.d.ts.map +1 -0
- package/lib-es/currencies/sanitizeValueString.js +52 -0
- package/lib-es/currencies/sanitizeValueString.js.map +1 -0
- package/lib-es/currencies/support.d.ts +8 -0
- package/lib-es/currencies/support.d.ts.map +1 -0
- package/lib-es/currencies/support.js +89 -0
- package/lib-es/currencies/support.js.map +1 -0
- package/lib-es/currencies/valueFromUnit.d.ts +9 -0
- package/lib-es/currencies/valueFromUnit.d.ts.map +1 -0
- package/lib-es/currencies/valueFromUnit.js +8 -0
- package/lib-es/currencies/valueFromUnit.js.map +1 -0
- package/lib-es/derivation.d.ts +232 -0
- package/lib-es/derivation.d.ts.map +1 -0
- package/lib-es/derivation.js +388 -0
- package/lib-es/derivation.js.map +1 -0
- package/lib-es/derivation.test.d.ts +2 -0
- package/lib-es/derivation.test.d.ts.map +1 -0
- package/lib-es/derivation.test.js +33 -0
- package/lib-es/derivation.test.js.map +1 -0
- package/lib-es/errors.d.ts +7 -0
- package/lib-es/errors.d.ts.map +1 -0
- package/lib-es/errors.js +4 -0
- package/lib-es/errors.js.map +1 -0
- package/lib-es/errors.test.d.ts +2 -0
- package/lib-es/errors.test.d.ts.map +1 -0
- package/lib-es/errors.test.js +18 -0
- package/lib-es/errors.test.js.map +1 -0
- package/lib-es/mocks/account.d.ts +26 -0
- package/lib-es/mocks/account.d.ts.map +1 -0
- package/lib-es/mocks/account.js +324 -0
- package/lib-es/mocks/account.js.map +1 -0
- package/lib-es/mocks/fixtures/nfts.d.ts +36 -0
- package/lib-es/mocks/fixtures/nfts.d.ts.map +1 -0
- package/lib-es/mocks/fixtures/nfts.js +393 -0
- package/lib-es/mocks/fixtures/nfts.js.map +1 -0
- package/lib-es/mocks/fixtures/nfts.test.d.ts +2 -0
- package/lib-es/mocks/fixtures/nfts.test.d.ts.map +1 -0
- package/lib-es/mocks/fixtures/nfts.test.js +18 -0
- package/lib-es/mocks/fixtures/nfts.test.js.map +1 -0
- package/lib-es/mocks/helpers.d.ts +15 -0
- package/lib-es/mocks/helpers.d.ts.map +1 -0
- package/lib-es/mocks/helpers.js +26 -0
- package/lib-es/mocks/helpers.js.map +1 -0
- package/lib-es/network.d.ts +9 -0
- package/lib-es/network.d.ts.map +1 -0
- package/lib-es/network.js +2 -0
- package/lib-es/network.js.map +1 -0
- package/lib-es/nft/nftId.d.ts +8 -0
- package/lib-es/nft/nftId.d.ts.map +1 -0
- package/lib-es/nft/nftId.js +13 -0
- package/lib-es/nft/nftId.js.map +1 -0
- package/lib-es/operation.d.ts +31 -0
- package/lib-es/operation.d.ts.map +1 -0
- package/lib-es/operation.js +190 -0
- package/lib-es/operation.js.map +1 -0
- package/lib-es/operation.test.d.ts +2 -0
- package/lib-es/operation.test.d.ts.map +1 -0
- package/lib-es/operation.test.js +111 -0
- package/lib-es/operation.test.js.map +1 -0
- package/lib-es/signer.d.ts +3 -0
- package/lib-es/signer.d.ts.map +1 -0
- package/lib-es/signer.js +2 -0
- package/lib-es/signer.js.map +1 -0
- package/lib-es/test-helpers/staticTime.d.ts +2 -0
- package/lib-es/test-helpers/staticTime.d.ts.map +1 -0
- package/lib-es/test-helpers/staticTime.js +5 -0
- package/lib-es/test-helpers/staticTime.js.map +1 -0
- package/lib-es/transaction/common.d.ts +26 -0
- package/lib-es/transaction/common.d.ts.map +1 -0
- package/lib-es/transaction/common.js +93 -0
- package/lib-es/transaction/common.js.map +1 -0
- package/package.json +8 -21
- package/src/account/accountId.ts +20 -30
- package/src/account/accountName.ts +1 -4
- package/src/account/balanceHistoryCache.test.ts +19 -0
- package/src/account/balanceHistoryCache.ts +52 -38
- package/src/account/groupOperations.ts +4 -6
- package/src/account/helpers.test.ts +6 -26
- package/src/account/helpers.ts +28 -60
- package/src/account/ordering.ts +10 -18
- package/src/account/pending.ts +6 -15
- package/src/account/serialization.ts +8 -19
- package/src/account/support.ts +8 -18
- package/src/account.test.ts +25 -40
- package/src/bot/specs.ts +24 -43
- package/src/bot/types.ts +2 -3
- package/src/bridge/getAddressWrapper.ts +7 -15
- package/src/bridge/jsHelpers.ts +228 -293
- package/src/cache.ts +4 -4
- package/src/currencies/BigNumberToLocaleString.test.ts +25 -33
- package/src/currencies/BigNumberToLocaleString.ts +3 -8
- package/src/currencies/CurrencyURIScheme.ts +1 -3
- package/src/currencies/chopCurrencyUnitDecimals.ts +1 -4
- package/src/currencies/formatCurrencyUnit.ts +11 -21
- package/src/currencies/index.ts +1 -4
- package/src/currencies/localeUtility.ts +2 -4
- package/src/currencies/parseCurrencyUnit.ts +1 -4
- package/src/currencies/sanitizeValueString.ts +1 -1
- package/src/currencies/support.ts +3 -9
- package/src/derivation.test.ts +1 -4
- package/src/derivation.ts +45 -95
- package/src/errors.test.ts +1 -1
- package/src/errors.ts +2 -6
- package/src/mocks/account.ts +27 -80
- package/src/mocks/fixtures/nfts.test.ts +2 -6
- package/src/mocks/fixtures/nfts.ts +12 -38
- package/src/mocks/helpers.ts +2 -8
- package/src/nft/nftId.ts +2 -2
- package/src/operation.test.ts +119 -32
- package/src/operation.ts +74 -26
- package/src/signer.ts +5 -0
- package/src/transaction/common.ts +9 -22
package/.eslintrc.js
CHANGED
|
@@ -1,57 +1,19 @@
|
|
|
1
1
|
module.exports = {
|
|
2
|
-
parser: "@typescript-eslint/parser",
|
|
3
2
|
env: {
|
|
4
3
|
browser: true,
|
|
5
4
|
es6: true,
|
|
6
|
-
node: true,
|
|
7
|
-
jest: true,
|
|
8
5
|
},
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
6
|
+
overrides: [
|
|
7
|
+
{
|
|
8
|
+
files: ["src/**/*.test.{ts,tsx}"],
|
|
9
|
+
env: {
|
|
10
|
+
"jest/globals": true,
|
|
11
|
+
},
|
|
12
|
+
plugins: ["jest"],
|
|
13
|
+
},
|
|
14
14
|
],
|
|
15
|
-
globals: {
|
|
16
|
-
Atomics: "readonly",
|
|
17
|
-
SharedArrayBuffer: "readonly",
|
|
18
|
-
},
|
|
19
|
-
plugins: ["@typescript-eslint", "prettier"],
|
|
20
15
|
rules: {
|
|
21
16
|
"no-console": ["error", { allow: ["warn", "error"] }],
|
|
22
|
-
"linebreak-style": ["error", "unix"],
|
|
23
|
-
semi: ["error", "always"],
|
|
24
|
-
"no-unused-vars": "off",
|
|
25
|
-
"import/prefer-default-export": 0,
|
|
26
|
-
"no-plusplus": 0,
|
|
27
|
-
"no-underscore-dangle": 0,
|
|
28
|
-
"prefer-template": 0,
|
|
29
|
-
"no-await-in-loop": 0,
|
|
30
|
-
"no-restricted-syntax": 0,
|
|
31
|
-
"consistent-return": 0,
|
|
32
|
-
"no-lonely-if": 0,
|
|
33
|
-
"no-use-before-define": 0,
|
|
34
|
-
"no-nested-ternary": 0,
|
|
35
|
-
"import/no-cycle": 0,
|
|
36
|
-
"no-multi-assign": 0,
|
|
37
|
-
"guard-for-in": 0,
|
|
38
|
-
"no-continue": 0,
|
|
39
|
-
"lines-between-class-members": 0,
|
|
40
|
-
"prefer-destructuring": 0,
|
|
41
|
-
"prettier/prettier": "error",
|
|
42
|
-
"@typescript-eslint/no-use-before-define": "off",
|
|
43
|
-
"@typescript-eslint/no-unused-vars": ["error", { argsIgnorePattern: "^_" }],
|
|
44
17
|
"@typescript-eslint/no-empty-function": "off",
|
|
45
|
-
"@typescript-eslint/no-namespace": ["error", { allowDeclarations: true }],
|
|
46
|
-
"@typescript-eslint/no-explicit-any": 0,
|
|
47
|
-
"@typescript-eslint/ban-types": [
|
|
48
|
-
"error",
|
|
49
|
-
{
|
|
50
|
-
extendDefaults: true,
|
|
51
|
-
types: {
|
|
52
|
-
"{}": false,
|
|
53
|
-
},
|
|
54
|
-
},
|
|
55
|
-
],
|
|
56
18
|
},
|
|
57
19
|
};
|
package/.turbo/turbo-build.log
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,15 +1,41 @@
|
|
|
1
1
|
# @ledgerhq/coin-framework
|
|
2
2
|
|
|
3
|
+
## 0.3.7-next.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [[`44192f2ab2`](https://github.com/LedgerHQ/ledger-live/commit/44192f2ab2857cbae2ef4a81ee9608d395dcd2b9), [`cb95f72c24`](https://github.com/LedgerHQ/ledger-live/commit/cb95f72c2415876ef88ca83fd2c4363a57669b92), [`be5f56b233`](https://github.com/LedgerHQ/ledger-live/commit/be5f56b2330c166323914b79fef37a3c05e0e13a), [`092cb8d317`](https://github.com/LedgerHQ/ledger-live/commit/092cb8d317fa7971e0f790b77f900ae3864d96c2), [`5af41b6fa1`](https://github.com/LedgerHQ/ledger-live/commit/5af41b6fa1e43037ccdb2df279c82e12ef3d2b1a)]:
|
|
8
|
+
- @ledgerhq/types-live@6.36.0-next.0
|
|
9
|
+
- @ledgerhq/cryptoassets@9.9.0-next.0
|
|
10
|
+
- @ledgerhq/types-cryptoassets@7.3.0-next.0
|
|
11
|
+
- @ledgerhq/live-env@0.3.1-next.0
|
|
12
|
+
|
|
3
13
|
## 0.3.6
|
|
4
14
|
|
|
5
15
|
### Patch Changes
|
|
6
16
|
|
|
7
|
-
- Updated dependencies [[`4a1454beb3`](https://github.com/LedgerHQ/ledger-live/commit/4a1454beb3f86405ba2686e07879c12a7d35ad8e), [`809065c571`](https://github.com/LedgerHQ/ledger-live/commit/809065c57198646a49adea112b9d799e35a57d25), [`ebe5b07afe`](https://github.com/LedgerHQ/ledger-live/commit/ebe5b07afec441ea3e2d9103da9e1175972add47)]:
|
|
17
|
+
- Updated dependencies [[`9adc1862dd`](https://github.com/LedgerHQ/ledger-live/commit/9adc1862dda605a722d19f3b6895bd324834c914), [`4a1454beb3`](https://github.com/LedgerHQ/ledger-live/commit/4a1454beb3f86405ba2686e07879c12a7d35ad8e), [`809065c571`](https://github.com/LedgerHQ/ledger-live/commit/809065c57198646a49adea112b9d799e35a57d25), [`d1aa522db7`](https://github.com/LedgerHQ/ledger-live/commit/d1aa522db75f7ea850efe412abaa4dc7d37af6b7), [`ebe5b07afe`](https://github.com/LedgerHQ/ledger-live/commit/ebe5b07afec441ea3e2d9103da9e1175972add47)]:
|
|
18
|
+
- @ledgerhq/errors@6.12.7
|
|
8
19
|
- @ledgerhq/cryptoassets@9.8.0
|
|
9
20
|
- @ledgerhq/types-cryptoassets@7.2.1
|
|
10
21
|
- @ledgerhq/types-live@6.35.1
|
|
22
|
+
- @ledgerhq/devices@8.0.4
|
|
23
|
+
- @ledgerhq/hw-transport@6.28.5
|
|
11
24
|
- @ledgerhq/live-portfolio@0.0.8
|
|
12
25
|
|
|
26
|
+
## 0.3.6-next.0
|
|
27
|
+
|
|
28
|
+
### Patch Changes
|
|
29
|
+
|
|
30
|
+
- Updated dependencies [[`9adc1862dd`](https://github.com/LedgerHQ/ledger-live/commit/9adc1862dda605a722d19f3b6895bd324834c914), [`4a1454beb3`](https://github.com/LedgerHQ/ledger-live/commit/4a1454beb3f86405ba2686e07879c12a7d35ad8e), [`809065c571`](https://github.com/LedgerHQ/ledger-live/commit/809065c57198646a49adea112b9d799e35a57d25), [`d1aa522db7`](https://github.com/LedgerHQ/ledger-live/commit/d1aa522db75f7ea850efe412abaa4dc7d37af6b7), [`ebe5b07afe`](https://github.com/LedgerHQ/ledger-live/commit/ebe5b07afec441ea3e2d9103da9e1175972add47)]:
|
|
31
|
+
- @ledgerhq/errors@6.12.7-next.0
|
|
32
|
+
- @ledgerhq/cryptoassets@9.8.0-next.0
|
|
33
|
+
- @ledgerhq/types-cryptoassets@7.2.1-next.0
|
|
34
|
+
- @ledgerhq/types-live@6.35.1-next.0
|
|
35
|
+
- @ledgerhq/devices@8.0.4-next.0
|
|
36
|
+
- @ledgerhq/hw-transport@6.28.5-next.0
|
|
37
|
+
- @ledgerhq/live-portfolio@0.0.8-next.0
|
|
38
|
+
|
|
13
39
|
## 0.3.5
|
|
14
40
|
|
|
15
41
|
### Patch Changes
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { AccountIdParams, DerivationMode } from "@ledgerhq/types-live";
|
|
2
|
+
import type { CryptoCurrency, TokenCurrency } from "@ledgerhq/types-cryptoassets";
|
|
3
|
+
export declare function encodeAccountId({ type, version, currencyId, xpubOrAddress, derivationMode, }: AccountIdParams): string;
|
|
4
|
+
export declare function encodeTokenAccountId(accountId: string, token: TokenCurrency): string;
|
|
5
|
+
export declare function decodeTokenAccountId(id: string): {
|
|
6
|
+
accountId: string;
|
|
7
|
+
token: TokenCurrency | null | undefined;
|
|
8
|
+
};
|
|
9
|
+
export declare function decodeAccountId(accountId: string): AccountIdParams;
|
|
10
|
+
export declare function getWalletName({ seedIdentifier, derivationMode, currency, }: {
|
|
11
|
+
seedIdentifier: string;
|
|
12
|
+
derivationMode: DerivationMode;
|
|
13
|
+
currency: CryptoCurrency;
|
|
14
|
+
}): string;
|
|
15
|
+
export declare const inferFamilyFromAccountId: (accountId: string) => string | null | undefined;
|
|
16
|
+
//# sourceMappingURL=accountId.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accountId.d.ts","sourceRoot":"","sources":["../../src/account/accountId.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAOlF,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,OAAO,EACP,UAAU,EACV,aAAa,EACb,cAAc,GACf,EAAE,eAAe,GAAG,MAAM,CAQ1B;AACD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,MAAM,CAEpF;AACD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,CAAC;CACzC,CAYA;AACD,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,CAYlE;AAGD,wBAAgB,aAAa,CAAC,EAC5B,cAAc,EACd,cAAc,EACd,QAAQ,GACT,EAAE;IACD,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,EAAE,cAAc,CAAC;CAC1B,GAAG,MAAM,CAET;AACD,eAAO,MAAM,wBAAwB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAS7E,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.inferFamilyFromAccountId = exports.getWalletName = exports.decodeAccountId = exports.decodeTokenAccountId = exports.encodeTokenAccountId = exports.encodeAccountId = void 0;
|
|
7
|
+
const memoize_1 = __importDefault(require("lodash/memoize"));
|
|
8
|
+
const invariant_1 = __importDefault(require("invariant"));
|
|
9
|
+
const derivation_1 = require("../derivation");
|
|
10
|
+
const currencies_1 = require("../currencies");
|
|
11
|
+
const cryptoassets_1 = require("@ledgerhq/cryptoassets");
|
|
12
|
+
function ensureNoColon(value, ctx) {
|
|
13
|
+
(0, invariant_1.default)(!value.includes(":"), "AccountId '%s' component must not use colon", ctx);
|
|
14
|
+
return value;
|
|
15
|
+
}
|
|
16
|
+
function encodeAccountId({ type, version, currencyId, xpubOrAddress, derivationMode, }) {
|
|
17
|
+
return `${ensureNoColon(type, "type")}:${ensureNoColon(version, "version")}:${ensureNoColon(currencyId, "currencyId")}:${ensureNoColon(xpubOrAddress, "xpubOrAddress")}:${ensureNoColon(derivationMode, "derivationMode")}`;
|
|
18
|
+
}
|
|
19
|
+
exports.encodeAccountId = encodeAccountId;
|
|
20
|
+
function encodeTokenAccountId(accountId, token) {
|
|
21
|
+
return accountId + "+" + encodeURIComponent(token.id);
|
|
22
|
+
}
|
|
23
|
+
exports.encodeTokenAccountId = encodeTokenAccountId;
|
|
24
|
+
function decodeTokenAccountId(id) {
|
|
25
|
+
const [accountId, tokenId] = id.split("+");
|
|
26
|
+
const decodedTokenId = decodeURIComponent(tokenId);
|
|
27
|
+
let token = (0, currencies_1.findTokenById)(decodedTokenId);
|
|
28
|
+
if (!token) {
|
|
29
|
+
const { currencyId } = decodeAccountId(accountId);
|
|
30
|
+
token = (0, cryptoassets_1.findTokenByAddressInCurrency)(decodedTokenId, currencyId);
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
accountId,
|
|
34
|
+
token,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
exports.decodeTokenAccountId = decodeTokenAccountId;
|
|
38
|
+
function decodeAccountId(accountId) {
|
|
39
|
+
(0, invariant_1.default)(typeof accountId === "string", "accountId is not a string");
|
|
40
|
+
const splitted = accountId.split(":");
|
|
41
|
+
(0, invariant_1.default)(splitted.length === 5, "invalid size for accountId");
|
|
42
|
+
const [type, version, currencyId, xpubOrAddress, derivationMode] = splitted;
|
|
43
|
+
return {
|
|
44
|
+
type,
|
|
45
|
+
version,
|
|
46
|
+
currencyId,
|
|
47
|
+
xpubOrAddress,
|
|
48
|
+
derivationMode: (0, derivation_1.asDerivationMode)(derivationMode),
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
exports.decodeAccountId = decodeAccountId;
|
|
52
|
+
// you can pass account because type is shape of Account
|
|
53
|
+
// wallet name is a lib-core concept that usually identify a pool of accounts with the same (seed, cointype, derivation scheme) config.
|
|
54
|
+
function getWalletName({ seedIdentifier, derivationMode, currency, }) {
|
|
55
|
+
return `${seedIdentifier}_${currency.id}_${derivationMode}`;
|
|
56
|
+
}
|
|
57
|
+
exports.getWalletName = getWalletName;
|
|
58
|
+
exports.inferFamilyFromAccountId = (0, memoize_1.default)(accountId => {
|
|
59
|
+
try {
|
|
60
|
+
const { currencyId } = decodeAccountId(accountId);
|
|
61
|
+
return (0, currencies_1.getCryptoCurrencyById)(currencyId).family;
|
|
62
|
+
}
|
|
63
|
+
catch (e) {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
//# sourceMappingURL=accountId.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accountId.js","sourceRoot":"","sources":["../../src/account/accountId.ts"],"names":[],"mappings":";;;;;;AAAA,6DAAqC;AACrC,0DAAkC;AAClC,8CAAiD;AACjD,8CAAqE;AACrE,yDAAsE;AAItE,SAAS,aAAa,CAAC,KAAa,EAAE,GAAW;IAC/C,IAAA,mBAAS,EAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,6CAA6C,EAAE,GAAG,CAAC,CAAC;IACpF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,OAAO,EACP,UAAU,EACV,aAAa,EACb,cAAc,GACE;IAChB,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,aAAa,CACzF,UAAU,EACV,YAAY,CACb,IAAI,aAAa,CAAC,aAAa,EAAE,eAAe,CAAC,IAAI,aAAa,CACjE,cAAc,EACd,gBAAgB,CACjB,EAAE,CAAC;AACN,CAAC;AAdD,0CAcC;AACD,SAAgB,oBAAoB,CAAC,SAAiB,EAAE,KAAoB;IAC1E,OAAO,SAAS,GAAG,GAAG,GAAG,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACxD,CAAC;AAFD,oDAEC;AACD,SAAgB,oBAAoB,CAAC,EAAU;IAI7C,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,cAAc,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACnD,IAAI,KAAK,GAAG,IAAA,0BAAa,EAAC,cAAc,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,EAAE,UAAU,EAAE,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QAClD,KAAK,GAAG,IAAA,2CAA4B,EAAC,cAAc,EAAE,UAAU,CAAC,CAAC;KAClE;IACD,OAAO;QACL,SAAS;QACT,KAAK;KACN,CAAC;AACJ,CAAC;AAfD,oDAeC;AACD,SAAgB,eAAe,CAAC,SAAiB;IAC/C,IAAA,mBAAS,EAAC,OAAO,SAAS,KAAK,QAAQ,EAAE,2BAA2B,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtC,IAAA,mBAAS,EAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,4BAA4B,CAAC,CAAC;IAC/D,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC;IAC5E,OAAO;QACL,IAAI;QACJ,OAAO;QACP,UAAU;QACV,aAAa;QACb,cAAc,EAAE,IAAA,6BAAgB,EAAC,cAAc,CAAC;KACjD,CAAC;AACJ,CAAC;AAZD,0CAYC;AACD,wDAAwD;AACxD,uIAAuI;AACvI,SAAgB,aAAa,CAAC,EAC5B,cAAc,EACd,cAAc,EACd,QAAQ,GAKT;IACC,OAAO,GAAG,cAAc,IAAI,QAAQ,CAAC,EAAE,IAAI,cAAc,EAAE,CAAC;AAC9D,CAAC;AAVD,sCAUC;AACY,QAAA,wBAAwB,GAAqD,IAAA,iBAAO,EAC/F,SAAS,CAAC,EAAE;IACV,IAAI;QACF,MAAM,EAAE,UAAU,EAAE,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QAClD,OAAO,IAAA,kCAAqB,EAAC,UAAU,CAAC,CAAC,MAAM,CAAC;KACjD;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,IAAI,CAAC;KACb;AACH,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { CryptoCurrency } from "@ledgerhq/types-cryptoassets";
|
|
2
|
+
import { Account, DerivationMode } from "@ledgerhq/types-live";
|
|
3
|
+
export declare const getAccountPlaceholderName: ({ currency, index, }: {
|
|
4
|
+
currency: CryptoCurrency;
|
|
5
|
+
index: number;
|
|
6
|
+
derivationMode: DerivationMode;
|
|
7
|
+
}) => string;
|
|
8
|
+
export declare const getNewAccountPlaceholderName: ({ currency, index, }: {
|
|
9
|
+
currency: CryptoCurrency;
|
|
10
|
+
index: number;
|
|
11
|
+
derivationMode: DerivationMode;
|
|
12
|
+
}) => string;
|
|
13
|
+
export declare const validateNameEdition: (account: Account, name?: string | null | undefined) => string;
|
|
14
|
+
//# sourceMappingURL=accountName.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accountName.d.ts","sourceRoot":"","sources":["../../src/account/accountName.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG/D,eAAO,MAAM,yBAAyB;cAI1B,cAAc;WACjB,MAAM;oBACG,cAAc;MAC5B,MAEH,CAAC;AACF,eAAO,MAAM,4BAA4B;cAN7B,cAAc;WACjB,MAAM;oBACG,cAAc;MAC5B,MAGiE,CAAC;AAEtE,eAAO,MAAM,mBAAmB,YAAa,OAAO,SAAS,MAAM,GAAG,IAAI,GAAG,SAAS,KAAG,MAKtD,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateNameEdition = exports.getNewAccountPlaceholderName = exports.getAccountPlaceholderName = void 0;
|
|
4
|
+
const MAX_ACCOUNT_NAME_SIZE = 50;
|
|
5
|
+
const getAccountPlaceholderName = ({ currency, index, }) => {
|
|
6
|
+
return `${currency.name} ${index + 1}`;
|
|
7
|
+
};
|
|
8
|
+
exports.getAccountPlaceholderName = getAccountPlaceholderName;
|
|
9
|
+
exports.getNewAccountPlaceholderName = exports.getAccountPlaceholderName; // same naming
|
|
10
|
+
const validateNameEdition = (account, name) => ((name || account.name || "").replace(/\s+/g, " ").trim() ||
|
|
11
|
+
account.name ||
|
|
12
|
+
(0, exports.getAccountPlaceholderName)(account)).slice(0, MAX_ACCOUNT_NAME_SIZE);
|
|
13
|
+
exports.validateNameEdition = validateNameEdition;
|
|
14
|
+
//# sourceMappingURL=accountName.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accountName.js","sourceRoot":"","sources":["../../src/account/accountName.ts"],"names":[],"mappings":";;;AAGA,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAC1B,MAAM,yBAAyB,GAAG,CAAC,EACxC,QAAQ,EACR,KAAK,GAKN,EAAU,EAAE;IACX,OAAO,GAAG,QAAQ,CAAC,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;AACzC,CAAC,CAAC;AATW,QAAA,yBAAyB,6BASpC;AACW,QAAA,4BAA4B,GAAG,iCAAyB,CAAC,CAAC,cAAc;AAE9E,MAAM,mBAAmB,GAAG,CAAC,OAAgB,EAAE,IAAgC,EAAU,EAAE,CAChG,CACE,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE;IACxD,OAAO,CAAC,IAAI;IACZ,IAAA,iCAAyB,EAAC,OAAO,CAAC,CACnC,CAAC,KAAK,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;AALvB,QAAA,mBAAmB,uBAKI"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { GranularityId, BalanceHistoryCache, AccountLike, Account } from "@ledgerhq/types-live";
|
|
2
|
+
export declare const emptyHistoryCache: {
|
|
3
|
+
HOUR: {
|
|
4
|
+
latestDate: null;
|
|
5
|
+
balances: never[];
|
|
6
|
+
};
|
|
7
|
+
DAY: {
|
|
8
|
+
latestDate: null;
|
|
9
|
+
balances: never[];
|
|
10
|
+
};
|
|
11
|
+
WEEK: {
|
|
12
|
+
latestDate: null;
|
|
13
|
+
balances: never[];
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export declare function startOfHour(t: Date): Date;
|
|
17
|
+
export declare function startOfDay(t: Date): Date;
|
|
18
|
+
export declare function startOfWeek(t: Date): Date;
|
|
19
|
+
export declare function generateHistoryFromOperations(account: AccountLike): BalanceHistoryCache;
|
|
20
|
+
/**
|
|
21
|
+
* get the current balance history of the account. if possible from the cache.
|
|
22
|
+
*/
|
|
23
|
+
export declare function getAccountHistoryBalances(account: AccountLike, g: GranularityId): number[];
|
|
24
|
+
/**
|
|
25
|
+
* utility used at the end of an account synchronisation to recalculate the balance history if necessary
|
|
26
|
+
*/
|
|
27
|
+
export declare function recalculateAccountBalanceHistories(res: Account, prev: Account): Account;
|
|
28
|
+
//# sourceMappingURL=balanceHistoryCache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"balanceHistoryCache.d.ts","sourceRoot":"","sources":["../../src/account/balanceHistoryCache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EAEnB,WAAW,EACX,OAAO,EAER,MAAM,sBAAsB,CAAC;AAG9B,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAa7B,CAAC;AAMF,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAEzC;AACD,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAExC;AACD,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAGzC;AAkED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,WAAW,GAAG,mBAAmB,CAMvF;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,aAAa,GAAG,MAAM,EAAE,CAW1F;AAED;;GAEG;AACH,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CA4BvF"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.recalculateAccountBalanceHistories = exports.getAccountHistoryBalances = exports.generateHistoryFromOperations = exports.startOfWeek = exports.startOfDay = exports.startOfHour = exports.emptyHistoryCache = void 0;
|
|
4
|
+
const operation_1 = require("../operation");
|
|
5
|
+
exports.emptyHistoryCache = {
|
|
6
|
+
HOUR: {
|
|
7
|
+
latestDate: null,
|
|
8
|
+
balances: [],
|
|
9
|
+
},
|
|
10
|
+
DAY: {
|
|
11
|
+
latestDate: null,
|
|
12
|
+
balances: [],
|
|
13
|
+
},
|
|
14
|
+
WEEK: {
|
|
15
|
+
latestDate: null,
|
|
16
|
+
balances: [],
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
const hourIncrement = 60 * 60 * 1000;
|
|
20
|
+
const dayIncrement = 24 * hourIncrement;
|
|
21
|
+
const weekIncrement = 7 * dayIncrement;
|
|
22
|
+
function startOfHour(t) {
|
|
23
|
+
return new Date(t.getFullYear(), t.getMonth(), t.getDate(), t.getHours());
|
|
24
|
+
}
|
|
25
|
+
exports.startOfHour = startOfHour;
|
|
26
|
+
function startOfDay(t) {
|
|
27
|
+
return new Date(t.getFullYear(), t.getMonth(), t.getDate());
|
|
28
|
+
}
|
|
29
|
+
exports.startOfDay = startOfDay;
|
|
30
|
+
function startOfWeek(t) {
|
|
31
|
+
const d = startOfDay(t);
|
|
32
|
+
return new Date(d.getTime() - d.getDay() * dayIncrement);
|
|
33
|
+
}
|
|
34
|
+
exports.startOfWeek = startOfWeek;
|
|
35
|
+
const granularities = {
|
|
36
|
+
WEEK: {
|
|
37
|
+
increment: weekIncrement,
|
|
38
|
+
startOf: startOfWeek,
|
|
39
|
+
maxDatapoints: 1000, // (essentially no limit)
|
|
40
|
+
},
|
|
41
|
+
DAY: {
|
|
42
|
+
increment: dayIncrement,
|
|
43
|
+
startOf: startOfDay,
|
|
44
|
+
maxDatapoints: 400, // we only need a year
|
|
45
|
+
},
|
|
46
|
+
HOUR: {
|
|
47
|
+
increment: hourIncrement,
|
|
48
|
+
startOf: startOfHour,
|
|
49
|
+
maxDatapoints: 8 * 24, // we only need a week
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
function generateHistoryFromOperationsG(account, g, // partial=true allows a faster implementation that only recompose the last part of the history
|
|
53
|
+
// to only use when we do not recalculate the history but we just want to access it
|
|
54
|
+
partial = false) {
|
|
55
|
+
const { increment, startOf, maxDatapoints } = granularities[g];
|
|
56
|
+
const latestDate = startOf(new Date()).getTime();
|
|
57
|
+
let balances = [];
|
|
58
|
+
let { balance } = account;
|
|
59
|
+
const operationsLength = account.operations.length;
|
|
60
|
+
let date = latestDate;
|
|
61
|
+
const reference = account.balanceHistoryCache[g];
|
|
62
|
+
for (let i = 0; i < operationsLength;) {
|
|
63
|
+
if ((partial && reference.latestDate && date < reference.latestDate) ||
|
|
64
|
+
balances.length > maxDatapoints) {
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
// accumulate operations after time t
|
|
68
|
+
while (i < operationsLength &&
|
|
69
|
+
// FIXME: added valueOf here to make typescript happy
|
|
70
|
+
account.operations[i].date.valueOf() > date) {
|
|
71
|
+
balance = balance.minus((0, operation_1.getOperationAmountNumberWithInternals)(account.operations[i]));
|
|
72
|
+
i++;
|
|
73
|
+
}
|
|
74
|
+
balances.unshift(Math.max(balance.toNumber(), 0));
|
|
75
|
+
date -= increment;
|
|
76
|
+
}
|
|
77
|
+
if (partial) {
|
|
78
|
+
balances = reference.balances.concat(balances);
|
|
79
|
+
}
|
|
80
|
+
return {
|
|
81
|
+
balances,
|
|
82
|
+
latestDate,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
function generateHistoryFromOperations(account) {
|
|
86
|
+
return {
|
|
87
|
+
HOUR: generateHistoryFromOperationsG(account, "HOUR"),
|
|
88
|
+
DAY: generateHistoryFromOperationsG(account, "DAY"),
|
|
89
|
+
WEEK: generateHistoryFromOperationsG(account, "WEEK"),
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
exports.generateHistoryFromOperations = generateHistoryFromOperations;
|
|
93
|
+
/**
|
|
94
|
+
* get the current balance history of the account. if possible from the cache.
|
|
95
|
+
*/
|
|
96
|
+
function getAccountHistoryBalances(account, g) {
|
|
97
|
+
const { balances, latestDate } = account.balanceHistoryCache[g];
|
|
98
|
+
const { startOf } = granularities[g];
|
|
99
|
+
const now = startOf(new Date()).getTime();
|
|
100
|
+
if (latestDate && latestDate === now) {
|
|
101
|
+
return balances;
|
|
102
|
+
}
|
|
103
|
+
// account cache was not up to date. recalculating on the fly
|
|
104
|
+
return generateHistoryFromOperationsG(account, g, true).balances;
|
|
105
|
+
}
|
|
106
|
+
exports.getAccountHistoryBalances = getAccountHistoryBalances;
|
|
107
|
+
/**
|
|
108
|
+
* utility used at the end of an account synchronisation to recalculate the balance history if necessary
|
|
109
|
+
*/
|
|
110
|
+
function recalculateAccountBalanceHistories(res, prev) {
|
|
111
|
+
// recalculate balance history cache
|
|
112
|
+
if (prev.balanceHistoryCache === res.balanceHistoryCache) {
|
|
113
|
+
// we only regenerate if it was not overriden by the implemenetation.
|
|
114
|
+
res = Object.assign(Object.assign({}, res), { balanceHistoryCache: generateHistoryFromOperations(res) });
|
|
115
|
+
}
|
|
116
|
+
const prevSubAccounts = prev.subAccounts;
|
|
117
|
+
const nextSubAccounts = res.subAccounts;
|
|
118
|
+
if (nextSubAccounts && prevSubAccounts && prevSubAccounts !== nextSubAccounts) {
|
|
119
|
+
// when sub accounts changes, we need to recalculate
|
|
120
|
+
res.subAccounts = nextSubAccounts.map((subAccount) => {
|
|
121
|
+
const old = prevSubAccounts.find(a => a.id === subAccount.id);
|
|
122
|
+
if (!old || old.balanceHistoryCache === subAccount.balanceHistoryCache) {
|
|
123
|
+
// we only regenerate if it was not overriden by the implemenetation.
|
|
124
|
+
subAccount = Object.assign(Object.assign({}, subAccount), { balanceHistoryCache: generateHistoryFromOperations(subAccount) });
|
|
125
|
+
}
|
|
126
|
+
return subAccount;
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
return res;
|
|
130
|
+
}
|
|
131
|
+
exports.recalculateAccountBalanceHistories = recalculateAccountBalanceHistories;
|
|
132
|
+
//# sourceMappingURL=balanceHistoryCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"balanceHistoryCache.js","sourceRoot":"","sources":["../../src/account/balanceHistoryCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"balanceHistoryCache.test.d.ts","sourceRoot":"","sources":["../../src/account/balanceHistoryCache.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const _1 = require(".");
|
|
4
|
+
describe("date utils", () => {
|
|
5
|
+
describe("startOfHour", () => {
|
|
6
|
+
test("basic test", () => {
|
|
7
|
+
expect((0, _1.startOfHour)(new Date(1655827384305)).toISOString()).toBe("2022-06-21T16:00:00.000Z");
|
|
8
|
+
});
|
|
9
|
+
});
|
|
10
|
+
describe("startOfDay", () => {
|
|
11
|
+
test("basic test", () => {
|
|
12
|
+
expect((0, _1.startOfDay)(new Date(1655827384305)).toISOString()).toBe("2022-06-21T04:00:00.000Z");
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
describe("startOfWeek", () => {
|
|
16
|
+
test("basic test", () => {
|
|
17
|
+
expect((0, _1.startOfWeek)(new Date(1655827384305)).toISOString()).toBe("2022-06-19T04:00:00.000Z");
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=balanceHistoryCache.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"balanceHistoryCache.test.js","sourceRoot":"","sources":["../../src/account/balanceHistoryCache.test.ts"],"names":[],"mappings":";;AAAA,wBAAyD;AAEzD,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE;YACtB,MAAM,CAAC,IAAA,cAAW,EAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE;YACtB,MAAM,CAAC,IAAA,aAAU,EAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC7F,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE;YACtB,MAAM,CAAC,IAAA,cAAW,EAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { AccountLike, AccountLikeArray, DailyOperations, Operation } from "@ledgerhq/types-live";
|
|
2
|
+
type GroupOpsByDayOpts = {
|
|
3
|
+
count: number;
|
|
4
|
+
withSubAccounts?: boolean;
|
|
5
|
+
filterOperation?: (arg0: Operation, arg1: AccountLike) => boolean;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* @memberof account
|
|
9
|
+
*/
|
|
10
|
+
export declare function groupAccountsOperationsByDay(inputAccounts: AccountLikeArray, { count, withSubAccounts, filterOperation }: GroupOpsByDayOpts): DailyOperations;
|
|
11
|
+
/**
|
|
12
|
+
* Return a list of `{count}` operations grouped by day.
|
|
13
|
+
* @memberof account
|
|
14
|
+
*/
|
|
15
|
+
export declare function groupAccountOperationsByDay(account: AccountLike, arg: GroupOpsByDayOpts): DailyOperations;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=groupOperations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groupOperations.d.ts","sourceRoot":"","sources":["../../src/account/groupOperations.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,SAAS,EACV,MAAM,sBAAsB,CAAC;AAU9B,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC;CACnE,CAAC;AAKF;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,aAAa,EAAE,gBAAgB,EAC/B,EAAE,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,EAAE,iBAAiB,GAC7D,eAAe,CAqHjB;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,iBAAiB,GACrB,eAAe,CAGjB"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.groupAccountOperationsByDay = exports.groupAccountsOperationsByDay = void 0;
|
|
4
|
+
const helpers_1 = require("./helpers");
|
|
5
|
+
const operation_1 = require("../operation");
|
|
6
|
+
function startOfDay(t) {
|
|
7
|
+
return new Date(t.getFullYear(), t.getMonth(), t.getDate());
|
|
8
|
+
}
|
|
9
|
+
const emptyDailyOperations = {
|
|
10
|
+
sections: [],
|
|
11
|
+
completed: true,
|
|
12
|
+
};
|
|
13
|
+
const hasStableOperation = (account, hash) => account.operations.some(op => op.hash === hash);
|
|
14
|
+
/**
|
|
15
|
+
* @memberof account
|
|
16
|
+
*/
|
|
17
|
+
function groupAccountsOperationsByDay(inputAccounts, { count, withSubAccounts, filterOperation }) {
|
|
18
|
+
const accounts = withSubAccounts ? (0, helpers_1.flattenAccounts)(inputAccounts) : inputAccounts;
|
|
19
|
+
// Track indexes of account.operations[] for each account
|
|
20
|
+
const indexes = Array(accounts.length).fill(0);
|
|
21
|
+
// Track indexes of account.pendingOperations[] for each account
|
|
22
|
+
const indexesPending = Array(accounts.length).fill(0);
|
|
23
|
+
// Returns the next most recent operation from the account with current indexes
|
|
24
|
+
function getNext() {
|
|
25
|
+
let bestOp;
|
|
26
|
+
let bestOpInfo = {
|
|
27
|
+
accountI: 0,
|
|
28
|
+
fromPending: false,
|
|
29
|
+
};
|
|
30
|
+
for (let i = 0; i < accounts.length; i++) {
|
|
31
|
+
const account = accounts[i];
|
|
32
|
+
// look in operations
|
|
33
|
+
let op = account.operations[indexes[i]];
|
|
34
|
+
if (filterOperation) {
|
|
35
|
+
// skip operation we want to filter out
|
|
36
|
+
while (op && !filterOperation(op, account)) {
|
|
37
|
+
op = account.operations[++indexes[i]];
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
if (op && (!bestOp || op.date > bestOp.date)) {
|
|
41
|
+
bestOp = op;
|
|
42
|
+
bestOpInfo = {
|
|
43
|
+
accountI: i,
|
|
44
|
+
fromPending: false,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
// look in pending operations
|
|
48
|
+
let opP = account.pendingOperations[indexesPending[i]];
|
|
49
|
+
while (opP && // skip all pending operations that are already in operations
|
|
50
|
+
(hasStableOperation(account, opP.hash) || // but also if we want to filter it
|
|
51
|
+
(filterOperation && !filterOperation(opP, account)))) {
|
|
52
|
+
opP = account.pendingOperations[++indexesPending[i]];
|
|
53
|
+
}
|
|
54
|
+
if (opP && (!bestOp || opP.date > bestOp.date)) {
|
|
55
|
+
bestOp = opP;
|
|
56
|
+
bestOpInfo = {
|
|
57
|
+
accountI: i,
|
|
58
|
+
fromPending: true,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
if (bestOp) {
|
|
63
|
+
if (bestOpInfo.fromPending) {
|
|
64
|
+
indexesPending[bestOpInfo.accountI]++;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
indexes[bestOpInfo.accountI]++;
|
|
68
|
+
}
|
|
69
|
+
const ops = (0, operation_1.flattenOperationWithInternalsAndNfts)(bestOp);
|
|
70
|
+
return {
|
|
71
|
+
ops,
|
|
72
|
+
date: bestOp.date,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
let next = getNext();
|
|
77
|
+
if (!next)
|
|
78
|
+
return emptyDailyOperations;
|
|
79
|
+
const sections = [];
|
|
80
|
+
let totalOperations = 0;
|
|
81
|
+
let day = startOfDay(next.date);
|
|
82
|
+
let data = [];
|
|
83
|
+
while (totalOperations < count && next) {
|
|
84
|
+
if (next.date < day) {
|
|
85
|
+
if (data.length > 0) {
|
|
86
|
+
const slicedData = data.slice(0, count - totalOperations);
|
|
87
|
+
sections.push({
|
|
88
|
+
day,
|
|
89
|
+
data: slicedData,
|
|
90
|
+
});
|
|
91
|
+
totalOperations += slicedData.length;
|
|
92
|
+
}
|
|
93
|
+
day = startOfDay(next.date);
|
|
94
|
+
data = next.ops;
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
data = data.concat(next.ops);
|
|
98
|
+
}
|
|
99
|
+
next = getNext();
|
|
100
|
+
}
|
|
101
|
+
if (data.length > 0 && totalOperations < count) {
|
|
102
|
+
sections.push({
|
|
103
|
+
day,
|
|
104
|
+
data,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
return {
|
|
108
|
+
sections,
|
|
109
|
+
completed: !next,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
exports.groupAccountsOperationsByDay = groupAccountsOperationsByDay;
|
|
113
|
+
/**
|
|
114
|
+
* Return a list of `{count}` operations grouped by day.
|
|
115
|
+
* @memberof account
|
|
116
|
+
*/
|
|
117
|
+
function groupAccountOperationsByDay(account, arg) {
|
|
118
|
+
const accounts = [account];
|
|
119
|
+
return groupAccountsOperationsByDay(accounts, arg);
|
|
120
|
+
}
|
|
121
|
+
exports.groupAccountOperationsByDay = groupAccountOperationsByDay;
|
|
122
|
+
//# sourceMappingURL=groupOperations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groupOperations.js","sourceRoot":"","sources":["../../src/account/groupOperations.ts"],"names":[],"mappings":"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"}
|