@ledgerhq/coin-framework 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/account/accountId.d.ts +16 -0
- package/lib/account/accountId.d.ts.map +1 -0
- package/lib/account/accountId.js +85 -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 +17 -0
- package/lib/account/accountName.js.map +1 -0
- package/lib/account/addAccounts.d.ts +35 -0
- package/lib/account/addAccounts.d.ts.map +1 -0
- package/lib/account/addAccounts.js +209 -0
- package/lib/account/addAccounts.js.map +1 -0
- package/lib/account/balanceHistoryCache.d.ts +25 -0
- package/lib/account/balanceHistoryCache.d.ts.map +1 -0
- package/lib/account/balanceHistoryCache.js +115 -0
- package/lib/account/balanceHistoryCache.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 +127 -0
- package/lib/account/groupOperations.js.map +1 -0
- package/lib/account/helpers.d.ts +44 -0
- package/lib/account/helpers.d.ts.map +1 -0
- package/lib/account/helpers.js +333 -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 +366 -0
- package/lib/account/helpers.test.js.map +1 -0
- package/lib/account/index.d.ts +11 -0
- package/lib/account/index.d.ts.map +1 -0
- package/lib/account/index.js +27 -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 +110 -0
- package/lib/account/ordering.js.map +1 -0
- package/lib/account/pending.d.ts +33 -0
- package/lib/account/pending.d.ts.map +1 -0
- package/lib/account/pending.js +64 -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 +118 -0
- package/lib/account/serialization.js.map +1 -0
- package/lib/account/support.d.ts +9 -0
- package/lib/account/support.d.ts.map +1 -0
- package/lib/account/support.js +72 -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 +257 -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 +31 -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 +204 -0
- package/lib/bot/specs.js.map +1 -0
- package/lib/bot/types.d.ts +178 -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 +6 -0
- package/lib/bridge/getAddressWrapper.d.ts.map +1 -0
- package/lib/bridge/getAddressWrapper.js +27 -0
- package/lib/bridge/getAddressWrapper.js.map +1 -0
- package/lib/bridge/jsHelpers.d.ts +63 -0
- package/lib/bridge/jsHelpers.d.ts.map +1 -0
- package/lib/bridge/jsHelpers.js +574 -0
- package/lib/bridge/jsHelpers.js.map +1 -0
- package/lib/cache.d.ts +10 -0
- package/lib/cache.d.ts.map +1 -0
- package/lib/cache.js +100 -0
- package/lib/cache.js.map +1 -0
- package/lib/cross.d.ts +42 -0
- package/lib/cross.d.ts.map +1 -0
- package/lib/cross.js +254 -0
- package/lib/cross.js.map +1 -0
- package/lib/cross.test.d.ts +2 -0
- package/lib/cross.test.d.ts.map +1 -0
- package/lib/cross.test.js +99 -0
- package/lib/cross.test.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 +65 -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 +124 -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 +126 -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 +65 -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 +49 -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 +101 -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 +14 -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 +501 -0
- package/lib/derivation.js.map +1 -0
- package/lib/env.d.ts +30 -0
- package/lib/env.d.ts.map +1 -0
- package/lib/env.js +773 -0
- package/lib/env.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 +25 -0
- package/lib/mocks/account.d.ts.map +1 -0
- package/lib/mocks/account.js +368 -0
- package/lib/mocks/account.js.map +1 -0
- package/lib/mocks/fixtures/nfts.d.ts +27 -0
- package/lib/mocks/fixtures/nfts.d.ts.map +1 -0
- package/lib/mocks/fixtures/nfts.js +398 -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 +5 -0
- package/lib/network.d.ts.map +1 -0
- package/lib/network.js +125 -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 +34 -0
- package/lib/nft/nftId.js.map +1 -0
- package/lib/operation.d.ts +24 -0
- package/lib/operation.d.ts.map +1 -0
- package/lib/operation.js +183 -0
- package/lib/operation.js.map +1 -0
- package/lib/promise.d.ts +21 -0
- package/lib/promise.d.ts.map +1 -0
- package/lib/promise.js +187 -0
- package/lib/promise.js.map +1 -0
- package/lib/promise.test.d.ts +2 -0
- package/lib/promise.test.d.ts.map +1 -0
- package/lib/promise.test.js +72 -0
- package/lib/promise.test.js.map +1 -0
- package/lib/rangeDates.d.ts +29 -0
- package/lib/rangeDates.d.ts.map +1 -0
- package/lib/rangeDates.js +94 -0
- package/lib/rangeDates.js.map +1 -0
- package/lib/rangeDates.test.d.ts +2 -0
- package/lib/rangeDates.test.d.ts.map +1 -0
- package/lib/rangeDates.test.js +51 -0
- package/lib/rangeDates.test.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 +123 -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 +74 -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 +12 -0
- package/lib-es/account/accountName.js.map +1 -0
- package/lib-es/account/addAccounts.d.ts +35 -0
- package/lib-es/account/addAccounts.d.ts.map +1 -0
- package/lib-es/account/addAccounts.js +200 -0
- package/lib-es/account/addAccounts.js.map +1 -0
- package/lib-es/account/balanceHistoryCache.d.ts +25 -0
- package/lib-es/account/balanceHistoryCache.d.ts.map +1 -0
- package/lib-es/account/balanceHistoryCache.js +109 -0
- package/lib-es/account/balanceHistoryCache.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 +122 -0
- package/lib-es/account/groupOperations.js.map +1 -0
- package/lib-es/account/helpers.d.ts +44 -0
- package/lib-es/account/helpers.d.ts.map +1 -0
- package/lib-es/account/helpers.js +303 -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 +361 -0
- package/lib-es/account/helpers.test.js.map +1 -0
- package/lib-es/account/index.d.ts +11 -0
- package/lib-es/account/index.d.ts.map +1 -0
- package/lib-es/account/index.js +11 -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 +103 -0
- package/lib-es/account/ordering.js.map +1 -0
- package/lib-es/account/pending.d.ts +33 -0
- package/lib-es/account/pending.d.ts.map +1 -0
- package/lib-es/account/pending.js +59 -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 +112 -0
- package/lib-es/account/serialization.js.map +1 -0
- package/lib-es/account/support.d.ts +9 -0
- package/lib-es/account/support.d.ts.map +1 -0
- package/lib-es/account/support.js +64 -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 +252 -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 +27 -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 +193 -0
- package/lib-es/bot/specs.js.map +1 -0
- package/lib-es/bot/types.d.ts +178 -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 +6 -0
- package/lib-es/bridge/getAddressWrapper.d.ts.map +1 -0
- package/lib-es/bridge/getAddressWrapper.js +25 -0
- package/lib-es/bridge/getAddressWrapper.js.map +1 -0
- package/lib-es/bridge/jsHelpers.d.ts +63 -0
- package/lib-es/bridge/jsHelpers.d.ts.map +1 -0
- package/lib-es/bridge/jsHelpers.js +562 -0
- package/lib-es/bridge/jsHelpers.js.map +1 -0
- package/lib-es/cache.d.ts +10 -0
- package/lib-es/cache.d.ts.map +1 -0
- package/lib-es/cache.js +93 -0
- package/lib-es/cache.js.map +1 -0
- package/lib-es/cross.d.ts +42 -0
- package/lib-es/cross.d.ts.map +1 -0
- package/lib-es/cross.js +244 -0
- package/lib-es/cross.js.map +1 -0
- package/lib-es/cross.test.d.ts +2 -0
- package/lib-es/cross.test.d.ts.map +1 -0
- package/lib-es/cross.test.js +97 -0
- package/lib-es/cross.test.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 +61 -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 +116 -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 +121 -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 +16 -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 +43 -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 +92 -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 +10 -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 +473 -0
- package/lib-es/derivation.js.map +1 -0
- package/lib-es/env.d.ts +30 -0
- package/lib-es/env.d.ts.map +1 -0
- package/lib-es/env.js +758 -0
- package/lib-es/env.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 +25 -0
- package/lib-es/mocks/account.d.ts.map +1 -0
- package/lib-es/mocks/account.js +358 -0
- package/lib-es/mocks/account.js.map +1 -0
- package/lib-es/mocks/fixtures/nfts.d.ts +27 -0
- package/lib-es/mocks/fixtures/nfts.d.ts.map +1 -0
- package/lib-es/mocks/fixtures/nfts.js +390 -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 +5 -0
- package/lib-es/network.d.ts.map +1 -0
- package/lib-es/network.js +118 -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 +29 -0
- package/lib-es/nft/nftId.js.map +1 -0
- package/lib-es/operation.d.ts +24 -0
- package/lib-es/operation.d.ts.map +1 -0
- package/lib-es/operation.js +168 -0
- package/lib-es/operation.js.map +1 -0
- package/lib-es/promise.d.ts +21 -0
- package/lib-es/promise.d.ts.map +1 -0
- package/lib-es/promise.js +179 -0
- package/lib-es/promise.js.map +1 -0
- package/lib-es/promise.test.d.ts +2 -0
- package/lib-es/promise.test.d.ts.map +1 -0
- package/lib-es/promise.test.js +70 -0
- package/lib-es/promise.test.js.map +1 -0
- package/lib-es/rangeDates.d.ts +29 -0
- package/lib-es/rangeDates.d.ts.map +1 -0
- package/lib-es/rangeDates.js +84 -0
- package/lib-es/rangeDates.js.map +1 -0
- package/lib-es/rangeDates.test.d.ts +2 -0
- package/lib-es/rangeDates.test.d.ts.map +1 -0
- package/lib-es/rangeDates.test.js +49 -0
- package/lib-es/rangeDates.test.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 +115 -0
- package/lib-es/transaction/common.js.map +1 -0
- package/package.json +113 -0
- package/src/__snapshots__/account.test.ts.snap +2065 -0
- package/src/__snapshots__/cross.test.ts.snap +57 -0
- package/src/account/accountId.ts +93 -0
- package/src/account/accountName.ts +25 -0
- package/src/account/addAccounts.ts +236 -0
- package/src/account/balanceHistoryCache.ts +146 -0
- package/src/account/groupOperations.ts +164 -0
- package/src/account/helpers.test.ts +441 -0
- package/src/account/helpers.ts +380 -0
- package/src/account/index.ts +10 -0
- package/src/account/ordering.ts +109 -0
- package/src/account/pending.ts +66 -0
- package/src/account/serialization.ts +189 -0
- package/src/account/support.ts +96 -0
- package/src/account.test.ts +237 -0
- package/src/bot/bot-test-context.test.ts +37 -0
- package/src/bot/bot-test-context.ts +24 -0
- package/src/bot/formatters.ts +22 -0
- package/src/bot/specs.ts +275 -0
- package/src/bot/types.ts +224 -0
- package/src/bridge/getAddressWrapper.ts +40 -0
- package/src/bridge/jsHelpers.ts +645 -0
- package/src/cache.ts +65 -0
- package/src/cross.test.ts +112 -0
- package/src/cross.ts +366 -0
- package/src/currencies/BigNumberToLocaleString.test.ts +155 -0
- package/src/currencies/BigNumberToLocaleString.ts +80 -0
- package/src/currencies/CurrencyURIScheme.ts +114 -0
- package/src/currencies/chopCurrencyUnitDecimals.ts +34 -0
- package/src/currencies/formatCurrencyUnit.ts +167 -0
- package/src/currencies/formatShort.ts +24 -0
- package/src/currencies/index.ts +78 -0
- package/src/currencies/localeUtility.ts +50 -0
- package/src/currencies/parseCurrencyUnit.ts +16 -0
- package/src/currencies/sanitizeValueString.ts +58 -0
- package/src/currencies/support.ts +107 -0
- package/src/currencies/valueFromUnit.ts +10 -0
- package/src/derivation.ts +595 -0
- package/src/env.ts +780 -0
- package/src/errors.test.ts +21 -0
- package/src/errors.ts +9 -0
- package/src/mocks/account.ts +476 -0
- package/src/mocks/fixtures/nfts.test.ts +25 -0
- package/src/mocks/fixtures/nfts.ts +432 -0
- package/src/mocks/helpers.ts +38 -0
- package/src/network.ts +135 -0
- package/src/nft/nftId.ts +26 -0
- package/src/operation.ts +212 -0
- package/src/promise.test.ts +20 -0
- package/src/promise.ts +101 -0
- package/src/rangeDates.test.ts +66 -0
- package/src/rangeDates.ts +96 -0
- package/src/test-helpers/staticTime.ts +4 -0
- package/src/transaction/common.ts +157 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { DeviceAction, DeviceActionArg, TransactionDestinationTestInput } from "./types";
|
|
2
|
+
import { Account, TransactionCommon } from "@ledgerhq/types-live";
|
|
3
|
+
import { botTest } from "./bot-test-context";
|
|
4
|
+
import { CryptoCurrency, TokenCurrency } from "@ledgerhq/types-cryptoassets";
|
|
5
|
+
import BigNumber from "bignumber.js";
|
|
6
|
+
export { botTest };
|
|
7
|
+
export declare function pickSiblings(siblings: Account[], maxAccount?: number): Account;
|
|
8
|
+
type State<T extends TransactionCommon> = {
|
|
9
|
+
finalState: boolean;
|
|
10
|
+
stepTitle: string;
|
|
11
|
+
stepValue: string;
|
|
12
|
+
acc: Array<{
|
|
13
|
+
title: string;
|
|
14
|
+
value: string;
|
|
15
|
+
}>;
|
|
16
|
+
currentStep: Step<T> | null | undefined;
|
|
17
|
+
};
|
|
18
|
+
export declare enum SpeculosButton {
|
|
19
|
+
LEFT = "Ll",
|
|
20
|
+
RIGHT = "Rr",
|
|
21
|
+
BOTH = "LRlr"
|
|
22
|
+
}
|
|
23
|
+
type Step<T extends TransactionCommon> = {
|
|
24
|
+
title: string;
|
|
25
|
+
stepValueTransform?: (s: string) => string;
|
|
26
|
+
expectedValue?: (arg0: DeviceActionArg<T, State<T>>, acc: Array<{
|
|
27
|
+
title: string;
|
|
28
|
+
value: string;
|
|
29
|
+
}>) => string;
|
|
30
|
+
ignoreAssertionFailure?: boolean;
|
|
31
|
+
trimValue?: boolean;
|
|
32
|
+
button?: SpeculosButton;
|
|
33
|
+
final?: boolean;
|
|
34
|
+
maxY?: number;
|
|
35
|
+
};
|
|
36
|
+
type FlowDesc<T extends TransactionCommon> = {
|
|
37
|
+
steps: Array<Step<T>>;
|
|
38
|
+
fallback?: (arg0: DeviceActionArg<T, State<T>>) => Step<T> | null | undefined;
|
|
39
|
+
};
|
|
40
|
+
export declare function deviceActionFlow<T extends TransactionCommon>(description: FlowDesc<T>): DeviceAction<T, State<T>>;
|
|
41
|
+
type DeviceAmountFormatOptions = {
|
|
42
|
+
postfixCode: boolean;
|
|
43
|
+
forceFloating: boolean;
|
|
44
|
+
hideCode: boolean;
|
|
45
|
+
showAllDigits: boolean;
|
|
46
|
+
};
|
|
47
|
+
export declare function formatDeviceAmount(currency: CryptoCurrency | TokenCurrency, value: BigNumber, options?: Partial<DeviceAmountFormatOptions>): string;
|
|
48
|
+
export declare function expectSiblingsHaveSpendablePartGreaterThan(siblings: Account[], threshold: number): void;
|
|
49
|
+
export declare const genericTestDestination: <T>({ destination, operation, destinationBeforeTransaction, sendingOperation, }: TransactionDestinationTestInput<T>) => void;
|
|
50
|
+
//# sourceMappingURL=specs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"specs.d.ts","sourceRoot":"","sources":["../../src/bot/specs.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,+BAA+B,EAChC,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,CAAC;AAKnB,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,UAAU,SAAI,GAAG,OAAO,CA8BzE;AAED,KAAK,KAAK,CAAC,CAAC,SAAS,iBAAiB,IAAI;IACxC,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,KAAK,CAAC;QACT,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;CACzC,CAAC;AAEF,oBAAY,cAAc;IACxB,IAAI,OAAO;IACX,KAAK,OAAO;IACZ,IAAI,SAAS;CACd;AAED,KAAK,IAAI,CAAC,CAAC,SAAS,iBAAiB,IAAI;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,aAAa,CAAC,EAAE,CACd,IAAI,EAAE,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAClC,GAAG,EAAE,KAAK,CAAC;QACT,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,KACC,MAAM,CAAC;IACZ,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,cAAc,CAAC;IAExB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AACF,KAAK,QAAQ,CAAC,CAAC,SAAS,iBAAiB,IAAI;IAC3C,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;CAC/E,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,iBAAiB,EAC1D,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,GACvB,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CA4F3B;AAED,KAAK,yBAAyB,GAAG;IAE/B,WAAW,EAAE,OAAO,CAAC;IAErB,aAAa,EAAE,OAAO,CAAC;IAEvB,QAAQ,EAAE,OAAO,CAAC;IAElB,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AASF,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,cAAc,GAAG,aAAa,EACxC,KAAK,EAAE,SAAS,EAChB,OAAO,GAAE,OAAO,CAAC,yBAAyB,CAAwB,GACjE,MAAM,CAmBR;AAKD,wBAAgB,0CAA0C,CACxD,QAAQ,EAAE,OAAO,EAAE,EACnB,SAAS,EAAE,MAAM,GAChB,IAAI,CAcN;AAED,eAAO,MAAM,sBAAsB,0HAKK,IAgBvC,CAAC"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
2
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
3
|
+
if (!m) return o;
|
|
4
|
+
var i = m.call(o), r, ar = [], e;
|
|
5
|
+
try {
|
|
6
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
7
|
+
}
|
|
8
|
+
catch (error) { e = { error: error }; }
|
|
9
|
+
finally {
|
|
10
|
+
try {
|
|
11
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
12
|
+
}
|
|
13
|
+
finally { if (e) throw e.error; }
|
|
14
|
+
}
|
|
15
|
+
return ar;
|
|
16
|
+
};
|
|
17
|
+
// helpers for spec
|
|
18
|
+
import invariant from "invariant";
|
|
19
|
+
import { log } from "@ledgerhq/logs";
|
|
20
|
+
import expect from "expect";
|
|
21
|
+
import sample from "lodash/sample";
|
|
22
|
+
import { isAccountEmpty } from "../account";
|
|
23
|
+
import { botTest } from "./bot-test-context";
|
|
24
|
+
import BigNumber from "bignumber.js";
|
|
25
|
+
export { botTest };
|
|
26
|
+
var stepValueTransformDefault = function (s) { return s.trim(); };
|
|
27
|
+
// TODO should weight the choice to favorize accounts with small amounts
|
|
28
|
+
export function pickSiblings(siblings, maxAccount) {
|
|
29
|
+
if (maxAccount === void 0) { maxAccount = 5; }
|
|
30
|
+
var withoutEmpties = siblings.filter(function (a) { return a.used; });
|
|
31
|
+
if (withoutEmpties.length >= maxAccount) {
|
|
32
|
+
// we are no longer creating accounts
|
|
33
|
+
var maybeAccount_1 = sample(withoutEmpties);
|
|
34
|
+
if (!maybeAccount_1) {
|
|
35
|
+
throw new Error("at least one non-empty sibling account exists. maxAccount=" +
|
|
36
|
+
maxAccount);
|
|
37
|
+
}
|
|
38
|
+
return maybeAccount_1;
|
|
39
|
+
}
|
|
40
|
+
// we are only keeping empty account that have smaller index to favorize creation of non created derivation modes
|
|
41
|
+
var empties = siblings.filter(isAccountEmpty);
|
|
42
|
+
empties.sort(function (a, b) { return a.index - b.index; });
|
|
43
|
+
if (empties.length > 0) {
|
|
44
|
+
empties = empties.filter(function (e) { return e.index === empties[0].index; });
|
|
45
|
+
}
|
|
46
|
+
var maybeAccount = sample(withoutEmpties.concat(empties));
|
|
47
|
+
if (!maybeAccount) {
|
|
48
|
+
throw new Error("at least one sibling account exists. maxAccount=" + maxAccount);
|
|
49
|
+
}
|
|
50
|
+
return maybeAccount;
|
|
51
|
+
}
|
|
52
|
+
export var SpeculosButton;
|
|
53
|
+
(function (SpeculosButton) {
|
|
54
|
+
SpeculosButton["LEFT"] = "Ll";
|
|
55
|
+
SpeculosButton["RIGHT"] = "Rr";
|
|
56
|
+
SpeculosButton["BOTH"] = "LRlr";
|
|
57
|
+
})(SpeculosButton || (SpeculosButton = {}));
|
|
58
|
+
// generalized logic of device actions
|
|
59
|
+
export function deviceActionFlow(description) {
|
|
60
|
+
return function (arg) {
|
|
61
|
+
invariant(arg.appCandidate.model === "nanoS", "FIXME: stepper logic is only implemented for Nano S");
|
|
62
|
+
var transport = arg.transport, event = arg.event, state = arg.state, disableStrictStepValueValidation = arg.disableStrictStepValueValidation;
|
|
63
|
+
var _a = state || {
|
|
64
|
+
finalState: false,
|
|
65
|
+
stepTitle: "",
|
|
66
|
+
stepValue: "",
|
|
67
|
+
acc: [],
|
|
68
|
+
currentStep: null
|
|
69
|
+
}, finalState = _a.finalState, stepTitle = _a.stepTitle, stepValue = _a.stepValue, acc = _a.acc, currentStep = _a.currentStep;
|
|
70
|
+
function runStep(step) {
|
|
71
|
+
var final = step.final, title = step.title, button = step.button;
|
|
72
|
+
if (stepValue && step.title !== stepTitle) {
|
|
73
|
+
// there were accumulated text and we are on new step, we need to release it and compare to expected
|
|
74
|
+
if (currentStep && currentStep.expectedValue) {
|
|
75
|
+
var expectedValue_1 = currentStep.expectedValue, ignoreAssertionFailure = currentStep.ignoreAssertionFailure;
|
|
76
|
+
var stepValueTransform_1 = currentStep.stepValueTransform || stepValueTransformDefault;
|
|
77
|
+
if (!ignoreAssertionFailure && !disableStrictStepValueValidation) {
|
|
78
|
+
botTest("deviceAction confirm step '" + stepTitle + "'", function () {
|
|
79
|
+
var _a, _b;
|
|
80
|
+
return expect((_a = {},
|
|
81
|
+
_a[stepTitle] = stepValueTransform_1(stepValue),
|
|
82
|
+
_a)).toMatchObject((_b = {},
|
|
83
|
+
_b[stepTitle] = expectedValue_1(arg, acc).trim(),
|
|
84
|
+
_b));
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
acc = acc.concat({
|
|
89
|
+
title: stepTitle,
|
|
90
|
+
value: stepValue
|
|
91
|
+
});
|
|
92
|
+
// a new step reset back the value for the next
|
|
93
|
+
stepValue = "";
|
|
94
|
+
}
|
|
95
|
+
if (button) {
|
|
96
|
+
// some step trigger navigation action
|
|
97
|
+
transport.button(button);
|
|
98
|
+
}
|
|
99
|
+
// text is the title of the step. we assume screen event starts / ends.
|
|
100
|
+
stepTitle = title;
|
|
101
|
+
currentStep = step;
|
|
102
|
+
if (final) {
|
|
103
|
+
finalState = true;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
if (!finalState) {
|
|
107
|
+
var possibleKnownStep = description.steps.find(function (s) {
|
|
108
|
+
if (s.maxY) {
|
|
109
|
+
return event.text.startsWith(s.title) && event.y < s.maxY;
|
|
110
|
+
}
|
|
111
|
+
return event.text.startsWith(s.title);
|
|
112
|
+
});
|
|
113
|
+
// if there is a fallback provided, we will run it to try to detect another possible known step
|
|
114
|
+
if (!possibleKnownStep && description.fallback) {
|
|
115
|
+
possibleKnownStep = description.fallback(arg);
|
|
116
|
+
}
|
|
117
|
+
if (possibleKnownStep) {
|
|
118
|
+
// a step title was recognized. run it as a new step
|
|
119
|
+
runStep(possibleKnownStep);
|
|
120
|
+
}
|
|
121
|
+
else if (currentStep) {
|
|
122
|
+
// there is a current ongoing step so we need to accumulate all text we see
|
|
123
|
+
var text = event.text;
|
|
124
|
+
if (currentStep.trimValue)
|
|
125
|
+
text = text.trim();
|
|
126
|
+
stepValue += text;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
log("bot/flow", "'".concat(event.text, "' ~> ").concat(stepTitle, ": ").concat(stepValue));
|
|
130
|
+
return {
|
|
131
|
+
finalState: finalState,
|
|
132
|
+
stepTitle: stepTitle,
|
|
133
|
+
stepValue: stepValue,
|
|
134
|
+
acc: acc,
|
|
135
|
+
currentStep: currentStep
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
var defaultFormatOptions = {
|
|
140
|
+
postfixCode: false,
|
|
141
|
+
forceFloating: false,
|
|
142
|
+
hideCode: false,
|
|
143
|
+
showAllDigits: false
|
|
144
|
+
};
|
|
145
|
+
var sep = " ";
|
|
146
|
+
export function formatDeviceAmount(currency, value, options) {
|
|
147
|
+
if (options === void 0) { options = defaultFormatOptions; }
|
|
148
|
+
var _a = __read(currency.units, 1), unit = _a[0];
|
|
149
|
+
var code = unit.code;
|
|
150
|
+
if (currency.type === "CryptoCurrency") {
|
|
151
|
+
var deviceTicker = currency.deviceTicker;
|
|
152
|
+
if (deviceTicker)
|
|
153
|
+
code = deviceTicker;
|
|
154
|
+
}
|
|
155
|
+
var fValue = value.div(new BigNumber(10).pow(unit.magnitude));
|
|
156
|
+
var v = options.showAllDigits
|
|
157
|
+
? fValue.toFixed(unit.magnitude)
|
|
158
|
+
: fValue.toString(10);
|
|
159
|
+
if (options.forceFloating) {
|
|
160
|
+
if (!v.includes(".")) {
|
|
161
|
+
// if the value is pure integer, in the app it will automatically add an .0
|
|
162
|
+
v += ".0";
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
if (options.hideCode)
|
|
166
|
+
return v;
|
|
167
|
+
return options.postfixCode ? v + sep + code : code + sep + v;
|
|
168
|
+
}
|
|
169
|
+
// this function throw if the portion of undelegated funds is smaller than the threshold
|
|
170
|
+
// where threshold is a value from 0.0 to 1.0, percentage of the total amount of funds
|
|
171
|
+
// Usage: put these in your spec, on the mutation transaction functions that intend to do more "delegations"
|
|
172
|
+
export function expectSiblingsHaveSpendablePartGreaterThan(siblings, threshold) {
|
|
173
|
+
var spendableTotal = siblings.reduce(function (acc, a) { return acc.plus(a.spendableBalance); }, new BigNumber(0));
|
|
174
|
+
var total = siblings.reduce(function (acc, a) { return acc.plus(a.balance); }, new BigNumber(0));
|
|
175
|
+
invariant(spendableTotal.div(total).gt(threshold), "the spendable part of accounts is sufficient (threshold: %s)", threshold);
|
|
176
|
+
}
|
|
177
|
+
export var genericTestDestination = function (_a) {
|
|
178
|
+
var destination = _a.destination, operation = _a.operation, destinationBeforeTransaction = _a.destinationBeforeTransaction, sendingOperation = _a.sendingOperation;
|
|
179
|
+
var amount = sendingOperation.value.minus(sendingOperation.fee);
|
|
180
|
+
botTest("account balance increased with transaction amount", function () {
|
|
181
|
+
return expect(destination.balance.toString()).toBe(destinationBeforeTransaction.balance.plus(amount).toString());
|
|
182
|
+
});
|
|
183
|
+
botTest("operation amount is consistent with sendingOperation", function () {
|
|
184
|
+
return expect({
|
|
185
|
+
type: operation.type,
|
|
186
|
+
amount: operation.value.toString()
|
|
187
|
+
}).toMatchObject({
|
|
188
|
+
type: "IN",
|
|
189
|
+
amount: amount.toString()
|
|
190
|
+
});
|
|
191
|
+
});
|
|
192
|
+
};
|
|
193
|
+
//# sourceMappingURL=specs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"specs.js","sourceRoot":"","sources":["../../src/bot/specs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { BigNumber } from "bignumber.js";
|
|
2
|
+
import Transport from "@ledgerhq/hw-transport";
|
|
3
|
+
import type { DeviceModelId } from "@ledgerhq/devices";
|
|
4
|
+
import { Account, AccountBridge, AccountRaw, Operation, SignedOperation, SignOperationEvent, TransactionCommon, TransactionStatusCommon } from "@ledgerhq/types-live";
|
|
5
|
+
import type { CryptoCurrency } from "@ledgerhq/types-cryptoassets";
|
|
6
|
+
export type AppCandidate = {
|
|
7
|
+
path: string;
|
|
8
|
+
model: DeviceModelId;
|
|
9
|
+
firmware: string;
|
|
10
|
+
appName: string;
|
|
11
|
+
appVersion: string;
|
|
12
|
+
};
|
|
13
|
+
export type DeviceActionEvent = {
|
|
14
|
+
text: string;
|
|
15
|
+
x: number;
|
|
16
|
+
y: number;
|
|
17
|
+
};
|
|
18
|
+
export type TransactionTestInput<T> = {
|
|
19
|
+
account: Account;
|
|
20
|
+
accountBeforeTransaction: Account;
|
|
21
|
+
transaction: T;
|
|
22
|
+
status: TransactionStatusCommon;
|
|
23
|
+
optimisticOperation: Operation;
|
|
24
|
+
operation: Operation;
|
|
25
|
+
};
|
|
26
|
+
export type TransactionDestinationTestInput<T> = {
|
|
27
|
+
sendingAccount: Account;
|
|
28
|
+
sendingOperation: Operation;
|
|
29
|
+
destinationBeforeTransaction: Account;
|
|
30
|
+
operation: Operation;
|
|
31
|
+
destination: Account;
|
|
32
|
+
transaction: T;
|
|
33
|
+
status: TransactionStatusCommon;
|
|
34
|
+
};
|
|
35
|
+
export type DeviceActionArg<T extends TransactionCommon, S> = {
|
|
36
|
+
appCandidate: AppCandidate;
|
|
37
|
+
account: Account;
|
|
38
|
+
transaction: T;
|
|
39
|
+
status: TransactionStatusCommon;
|
|
40
|
+
transport: Transport & {
|
|
41
|
+
button: (arg0: string) => void;
|
|
42
|
+
};
|
|
43
|
+
event: DeviceActionEvent;
|
|
44
|
+
state: S;
|
|
45
|
+
disableStrictStepValueValidation?: boolean;
|
|
46
|
+
};
|
|
47
|
+
export type DeviceAction<T extends TransactionCommon, S> = (arg0: DeviceActionArg<T, S>) => S | null | undefined;
|
|
48
|
+
export type TransactionArg<T extends TransactionCommon> = {
|
|
49
|
+
appCandidate: AppCandidate;
|
|
50
|
+
account: Account;
|
|
51
|
+
siblings: Account[];
|
|
52
|
+
bridge: AccountBridge<T>;
|
|
53
|
+
maxSpendable: BigNumber;
|
|
54
|
+
preloadedData: any;
|
|
55
|
+
};
|
|
56
|
+
export type TransactionRes<T extends TransactionCommon> = {
|
|
57
|
+
transaction: T;
|
|
58
|
+
updates: Array<Partial<T> | null | undefined>;
|
|
59
|
+
destination?: Account;
|
|
60
|
+
};
|
|
61
|
+
export type MutationSpec<T extends TransactionCommon> = {
|
|
62
|
+
name: string;
|
|
63
|
+
maxRun: number;
|
|
64
|
+
transaction: (arg: TransactionArg<T>) => TransactionRes<T>;
|
|
65
|
+
recoverBadTransactionStatus?: (arg0: {
|
|
66
|
+
transaction: T;
|
|
67
|
+
status: TransactionStatusCommon;
|
|
68
|
+
account: Account;
|
|
69
|
+
bridge: AccountBridge<T>;
|
|
70
|
+
}) => T | null | undefined;
|
|
71
|
+
expectStatusWarnings?: (arg0: {
|
|
72
|
+
transaction: T;
|
|
73
|
+
status: TransactionStatusCommon;
|
|
74
|
+
account: Account;
|
|
75
|
+
bridge: AccountBridge<T>;
|
|
76
|
+
}) => {
|
|
77
|
+
[_: string]: Error;
|
|
78
|
+
} | undefined;
|
|
79
|
+
deviceAction?: DeviceAction<T, any>;
|
|
80
|
+
testTimeout?: number;
|
|
81
|
+
test?: (input: TransactionTestInput<T>) => void;
|
|
82
|
+
testDestination?: (input: TransactionDestinationTestInput<T>) => void;
|
|
83
|
+
};
|
|
84
|
+
export type AppSpec<T extends TransactionCommon> = {
|
|
85
|
+
disabled?: boolean;
|
|
86
|
+
name: string;
|
|
87
|
+
currency: CryptoCurrency;
|
|
88
|
+
testTimeout?: number;
|
|
89
|
+
scanAccountsRetries?: number;
|
|
90
|
+
multipleRuns?: number;
|
|
91
|
+
crossAccountFrequency?: number;
|
|
92
|
+
dependency?: string;
|
|
93
|
+
appQuery: {
|
|
94
|
+
model?: DeviceModelId;
|
|
95
|
+
appName?: string;
|
|
96
|
+
firmware?: string;
|
|
97
|
+
appVersion?: string;
|
|
98
|
+
};
|
|
99
|
+
mutations: MutationSpec<T>[];
|
|
100
|
+
transactionCheck?: (arg: TransactionArg<T>) => void;
|
|
101
|
+
test?: (arg0: TransactionTestInput<T>) => void;
|
|
102
|
+
genericDeviceAction: DeviceAction<T, any>;
|
|
103
|
+
genericDeviceActionForSubAccountTransfers?: DeviceAction<T, any>;
|
|
104
|
+
minViableAmount?: BigNumber;
|
|
105
|
+
skipMutationsTimeout?: number;
|
|
106
|
+
allowEmptyAccounts?: boolean;
|
|
107
|
+
};
|
|
108
|
+
export type SpecReport<T extends TransactionCommon> = {
|
|
109
|
+
spec: AppSpec<T>;
|
|
110
|
+
appPath?: string;
|
|
111
|
+
scanDuration?: number;
|
|
112
|
+
preloadDuration?: number;
|
|
113
|
+
accountsBefore?: Account[];
|
|
114
|
+
accountsAfter?: Account[];
|
|
115
|
+
mutations?: MutationReport<T>[];
|
|
116
|
+
fatalError?: Error;
|
|
117
|
+
hintWarnings: string[];
|
|
118
|
+
skipMutationsTimeoutReached: boolean;
|
|
119
|
+
};
|
|
120
|
+
export type MutationReport<T extends TransactionCommon> = {
|
|
121
|
+
resyncAccountsDuration: number;
|
|
122
|
+
spec: AppSpec<T>;
|
|
123
|
+
appCandidate: AppCandidate;
|
|
124
|
+
account?: Account;
|
|
125
|
+
maxSpendable?: BigNumber;
|
|
126
|
+
unavailableMutationReasons?: Array<{
|
|
127
|
+
error: Error;
|
|
128
|
+
mutation: MutationSpec<T>;
|
|
129
|
+
}>;
|
|
130
|
+
mutation?: MutationSpec<T>;
|
|
131
|
+
mutationTime?: number;
|
|
132
|
+
destination?: Account;
|
|
133
|
+
transaction?: T;
|
|
134
|
+
status?: TransactionStatusCommon;
|
|
135
|
+
statusTime?: number;
|
|
136
|
+
recoveredFromTransactionStatus?: {
|
|
137
|
+
transaction: T;
|
|
138
|
+
status: TransactionStatusCommon;
|
|
139
|
+
};
|
|
140
|
+
latestSignOperationEvent?: SignOperationEvent;
|
|
141
|
+
signedOperation?: SignedOperation;
|
|
142
|
+
signedTime?: number;
|
|
143
|
+
optimisticOperation?: Operation;
|
|
144
|
+
broadcastedTime?: number;
|
|
145
|
+
operation?: Operation;
|
|
146
|
+
confirmedTime?: number;
|
|
147
|
+
finalAccount?: Account;
|
|
148
|
+
testDuration?: number;
|
|
149
|
+
destinationConfirmedTime?: number;
|
|
150
|
+
finalDestination?: Account;
|
|
151
|
+
finalDestinationOperation?: Operation;
|
|
152
|
+
testDestinationDuration?: number;
|
|
153
|
+
error?: Error;
|
|
154
|
+
errorTime?: number;
|
|
155
|
+
hintWarnings: string[];
|
|
156
|
+
};
|
|
157
|
+
export type MinimalSerializedMutationReport = {
|
|
158
|
+
appCandidate: AppCandidate;
|
|
159
|
+
mutationName: string | undefined;
|
|
160
|
+
accountId: string | undefined;
|
|
161
|
+
destinationId: string | undefined;
|
|
162
|
+
operationId: string | undefined;
|
|
163
|
+
error: string | undefined;
|
|
164
|
+
};
|
|
165
|
+
export type MinimalSerializedSpecReport = {
|
|
166
|
+
specName: string;
|
|
167
|
+
accounts: AccountRaw[] | undefined;
|
|
168
|
+
fatalError: string | undefined;
|
|
169
|
+
mutations: MinimalSerializedMutationReport[] | undefined;
|
|
170
|
+
existingMutationNames: string[];
|
|
171
|
+
hintWarnings: string[];
|
|
172
|
+
};
|
|
173
|
+
export type MinimalSerializedReport = {
|
|
174
|
+
results: Array<MinimalSerializedSpecReport>;
|
|
175
|
+
environment: string | undefined;
|
|
176
|
+
seedHash: string;
|
|
177
|
+
};
|
|
178
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/bot/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/bot/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import Transport from "@ledgerhq/hw-transport";
|
|
2
|
+
import type { Result, GetAddressOptions } from "../derivation";
|
|
3
|
+
export type Resolver = (transport: Transport, addressOpt: GetAddressOptions) => Promise<Result>;
|
|
4
|
+
declare const getAddressWrapper: (getAddressFn: Resolver) => (transport: Transport, opts: GetAddressOptions) => Promise<Result>;
|
|
5
|
+
export default getAddressWrapper;
|
|
6
|
+
//# sourceMappingURL=getAddressWrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAddressWrapper.d.ts","sourceRoot":"","sources":["../../src/bridge/getAddressWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAM/C,OAAO,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE/D,MAAM,MAAM,QAAQ,GAAG,CACrB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,iBAAiB,KAC1B,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB,QAAA,MAAM,iBAAiB,iBACN,QAAQ,iBACX,SAAS,QAAQ,iBAAiB,oBAsB7C,CAAC;AAEJ,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { DeviceAppVerifyNotSupported, UserRefusedAddress, } from "@ledgerhq/errors";
|
|
2
|
+
import { log } from "@ledgerhq/logs";
|
|
3
|
+
var getAddressWrapper = function (getAddressFn) {
|
|
4
|
+
return function (transport, opts) {
|
|
5
|
+
var currency = opts.currency, path = opts.path, verify = opts.verify;
|
|
6
|
+
return getAddressFn(transport, opts)
|
|
7
|
+
.then(function (result) {
|
|
8
|
+
log("hw", "getAddress ".concat(currency.id, " on ").concat(path), result);
|
|
9
|
+
return result;
|
|
10
|
+
})["catch"](function (e) {
|
|
11
|
+
log("hw", "getAddress ".concat(currency.id, " on ").concat(path, " FAILED ").concat(String(e)));
|
|
12
|
+
if (e && e.name === "TransportStatusError") {
|
|
13
|
+
if (e.statusCode === 0x6b00 && verify) {
|
|
14
|
+
throw new DeviceAppVerifyNotSupported();
|
|
15
|
+
}
|
|
16
|
+
if (e.statusCode === 0x6985 || e.statusCode === 0x5501) {
|
|
17
|
+
throw new UserRefusedAddress();
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
throw e;
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
export default getAddressWrapper;
|
|
25
|
+
//# sourceMappingURL=getAddressWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAddressWrapper.js","sourceRoot":"","sources":["../../src/bridge/getAddressWrapper.ts"],"names":[],"mappings":"AACA,OAAO,EACL,2BAA2B,EAC3B,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAQrC,IAAM,iBAAiB,GACrB,UAAC,YAAsB;IACvB,OAAA,UAAC,SAAoB,EAAE,IAAuB;QACpC,IAAA,QAAQ,GAAmB,IAAI,SAAvB,EAAE,IAAI,GAAa,IAAI,KAAjB,EAAE,MAAM,GAAK,IAAI,OAAT,CAAU;QACxC,OAAO,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC;aACjC,IAAI,CAAC,UAAC,MAAM;YACX,GAAG,CAAC,IAAI,EAAE,qBAAc,QAAQ,CAAC,EAAE,iBAAO,IAAI,CAAE,EAAE,MAAM,CAAC,CAAC;YAC1D,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CACD,OAAK,CAAA,CAAC,UAAC,CAAC;YACP,GAAG,CAAC,IAAI,EAAE,qBAAc,QAAQ,CAAC,EAAE,iBAAO,IAAI,qBAAW,MAAM,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;YAEtE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,sBAAsB,EAAE;gBAC1C,IAAI,CAAC,CAAC,UAAU,KAAK,MAAM,IAAI,MAAM,EAAE;oBACrC,MAAM,IAAI,2BAA2B,EAAE,CAAC;iBACzC;gBAED,IAAI,CAAC,CAAC,UAAU,KAAK,MAAM,IAAI,CAAC,CAAC,UAAU,KAAK,MAAM,EAAE;oBACtD,MAAM,IAAI,kBAAkB,EAAE,CAAC;iBAChC;aACF;YAED,MAAM,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;IACP,CAAC;AAtBD,CAsBC,CAAC;AAEJ,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Observable } from "rxjs";
|
|
2
|
+
import Transport from "@ledgerhq/hw-transport";
|
|
3
|
+
import { DerivationMode } from "../derivation";
|
|
4
|
+
import { Resolver } from "./getAddressWrapper";
|
|
5
|
+
import type { Result } from "../derivation";
|
|
6
|
+
import type { CryptoCurrency } from "@ledgerhq/types-cryptoassets";
|
|
7
|
+
import type { Account, AccountBridge, CurrencyBridge, Operation, ProtoNFT, SyncConfig } from "@ledgerhq/types-live";
|
|
8
|
+
type IterateResult = ({ transport, index, derivationsCache, derivationScheme, derivationMode, currency, }: {
|
|
9
|
+
transport: Transport;
|
|
10
|
+
index: number;
|
|
11
|
+
derivationsCache: Record<string, Result>;
|
|
12
|
+
derivationScheme: string;
|
|
13
|
+
derivationMode: DerivationMode;
|
|
14
|
+
currency: CryptoCurrency;
|
|
15
|
+
}) => Promise<Result | null>;
|
|
16
|
+
export type IterateResultBuilder = ({ result, // derivation on the "root" of the derivation
|
|
17
|
+
derivationMode, // identify the current derivation scheme
|
|
18
|
+
derivationScheme, }: {
|
|
19
|
+
result: Result;
|
|
20
|
+
derivationMode: DerivationMode;
|
|
21
|
+
derivationScheme: string;
|
|
22
|
+
}) => Promise<IterateResult>;
|
|
23
|
+
export type AccountShapeInfo = {
|
|
24
|
+
currency: CryptoCurrency;
|
|
25
|
+
address: string;
|
|
26
|
+
index: number;
|
|
27
|
+
initialAccount?: Account;
|
|
28
|
+
derivationPath: string;
|
|
29
|
+
derivationMode: DerivationMode;
|
|
30
|
+
transport?: Transport;
|
|
31
|
+
rest?: any;
|
|
32
|
+
};
|
|
33
|
+
export type GetAccountShape = (arg0: AccountShapeInfo, arg1: SyncConfig) => Promise<Partial<Account>>;
|
|
34
|
+
export declare const sameOp: (a: Operation, b: Operation) => boolean;
|
|
35
|
+
export declare function mergeOps(// existing operations. sorted (newer to older). deduped.
|
|
36
|
+
existing: Operation[], // new fetched operations. not sorted. not deduped. time is allowed to overlap inside existing.
|
|
37
|
+
newFetched: Operation[]): Operation[];
|
|
38
|
+
export declare const mergeNfts: (oldNfts: ProtoNFT[], newNfts: ProtoNFT[]) => ProtoNFT[];
|
|
39
|
+
export declare const makeSync: ({ getAccountShape, postSync, shouldMergeOps, }: {
|
|
40
|
+
getAccountShape: GetAccountShape;
|
|
41
|
+
postSync?: ((initial: Account, synced: Account) => Account) | undefined;
|
|
42
|
+
shouldMergeOps?: boolean | undefined;
|
|
43
|
+
}) => AccountBridge<any>["sync"];
|
|
44
|
+
export type DeviceCommunication = (deviceId: string) => <T>(job: (transport: Transport) => Observable<T>) => Observable<T>;
|
|
45
|
+
export declare const makeScanAccounts: ({ getAccountShape, deviceCommunication, buildIterateResult, getAddressFn, }: {
|
|
46
|
+
getAccountShape: GetAccountShape;
|
|
47
|
+
deviceCommunication: DeviceCommunication;
|
|
48
|
+
buildIterateResult?: IterateResultBuilder | undefined;
|
|
49
|
+
getAddressFn: Resolver;
|
|
50
|
+
}) => CurrencyBridge["scanAccounts"];
|
|
51
|
+
export declare function makeAccountBridgeReceive(getAddressFn: Resolver, deviceCommunication: DeviceCommunication, { injectGetAddressParams, }?: {
|
|
52
|
+
injectGetAddressParams?: (account: Account) => any;
|
|
53
|
+
}): (account: Account, option: {
|
|
54
|
+
verify?: boolean;
|
|
55
|
+
deviceId: string;
|
|
56
|
+
subAccountId?: string;
|
|
57
|
+
freshAddressIndex?: number;
|
|
58
|
+
}) => Observable<{
|
|
59
|
+
address: string;
|
|
60
|
+
path: string;
|
|
61
|
+
}>;
|
|
62
|
+
export {};
|
|
63
|
+
//# sourceMappingURL=jsHelpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsHelpers.d.ts","sourceRoot":"","sources":["../../src/bridge/jsHelpers.ts"],"names":[],"mappings":"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"}
|