@exodus/address-provider
Advanced tools
Comparing version 7.3.0 to 7.4.0
@@ -6,2 +6,8 @@ # Change Log | ||
## [7.4.0](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/address-provider@7.3.0...@exodus/address-provider@7.4.0) (2023-09-13) | ||
### Features | ||
- return all receive addresses in multi-address mode ([#4011](https://github.com/ExodusMovement/exodus-hydra/issues/4011)) ([1a41567](https://github.com/ExodusMovement/exodus-hydra/commit/1a41567ac7cc8b1f8f17b33a8e4f2cf79411afa0)) | ||
## [7.3.0](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/address-provider@7.2.0...@exodus/address-provider@7.3.0) (2023-09-12) | ||
@@ -8,0 +14,0 @@ |
@@ -9,3 +9,3 @@ import typeforce from '@exodus/typeforce' | ||
import { UnsupportedAssetError } from '../errors' | ||
import { resolveUnusedAddressIndexesFromAddresses } from '../utils' | ||
import { inclusiveRange, resolveUnusedAddressIndexesFromAddresses } from '../utils' | ||
@@ -342,4 +342,31 @@ export class TrezorAddressProvider { | ||
getReceiveAddresses = async (opts) => { | ||
return [await this.getReceiveAddress(opts)] | ||
getReceiveAddresses = async ({ assetName, walletAccount, multiAddressMode, purpose }) => { | ||
typeforce( | ||
{ | ||
walletAccount: (value) => value instanceof WalletAccount, | ||
assetName: 'String', | ||
purpose: '?Number', | ||
multiAddressMode: '?Boolean', | ||
}, | ||
{ assetName, walletAccount, multiAddressMode, purpose }, | ||
true | ||
) | ||
if (!multiAddressMode) { | ||
return [await this.getReceiveAddress({ assetName, walletAccount, purpose })] | ||
} | ||
let indexes = await this.getUnusedAddressIndexes({ walletAccount, assetName }) | ||
if (purpose) { | ||
indexes = indexes.filter((index) => index.purpose === purpose) | ||
} | ||
return Promise.all( | ||
indexes.flatMap(({ purpose, chain: [unusedReceiveAddressIndex] }) => | ||
inclusiveRange(unusedReceiveAddressIndex).map((addressIndex) => | ||
this.getReceiveAddress({ walletAccount, assetName, purpose, addressIndex }) | ||
) | ||
) | ||
) | ||
} | ||
@@ -346,0 +373,0 @@ getChangeAddresses = async (opts) => { |
@@ -70,1 +70,5 @@ import { AddressSet } from '@exodus/models' | ||
} | ||
export const inclusiveRange = (end) => { | ||
return [...Array.from({ length: end }).keys(), end] | ||
} |
{ | ||
"name": "@exodus/address-provider", | ||
"version": "7.3.0", | ||
"version": "7.4.0", | ||
"description": "Address provider for deriving and tracking used and unused addresses.", | ||
@@ -52,3 +52,3 @@ "author": "Exodus Movement Inc.", | ||
"@exodus/bitcoin-plugin": "^1.0.3", | ||
"@exodus/blockchain-metadata": "^12.1.3", | ||
"@exodus/blockchain-metadata": "^13.0.0", | ||
"@exodus/cardano-lib": "^1.4.0", | ||
@@ -66,3 +66,3 @@ "@exodus/dogecoin-plugin": "^1.0.1", | ||
}, | ||
"gitHead": "43d5e04bab629373b627e7f57212eda67585f1f7" | ||
"gitHead": "16c2b395cce47a2c65b5f5a1e02c1f24e0958ae5" | ||
} |
53567
1074