@cityofzion/blockchain-service 1.14.0 → 1.15.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.
@@ -10,5 +10,5 @@ export declare class BSAggregator<BSName extends string = string> {
10
10
  getBlockchainNameByAddress(address: string): BSName[];
11
11
  getBlockchainNameByKey(wif: string): BSName[];
12
12
  getBlockchainNameByEncrypted(keyOrJson: string): BSName[];
13
- generateAccountsFromMnemonic(mnemonic: string): Promise<Map<BSName, Account<BSName>[]>>;
13
+ generateAccountsFromMnemonic(mnemonic: string, untilIndex?: number): Promise<Map<BSName, Account<BSName>[]>>;
14
14
  }
@@ -56,9 +56,14 @@ class BSAggregator {
56
56
  getBlockchainNameByEncrypted(keyOrJson) {
57
57
  return __classPrivateFieldGet(this, _BSAggregator_blockchainServices, "f").filter(bs => bs.validateEncrypted(keyOrJson)).map(bs => bs.name);
58
58
  }
59
- generateAccountsFromMnemonic(mnemonic) {
59
+ generateAccountsFromMnemonic(mnemonic, untilIndex) {
60
60
  return __awaiter(this, void 0, void 0, function* () {
61
- return (0, functions_1.fetchAccountsForBlockchainServices)(__classPrivateFieldGet(this, _BSAggregator_blockchainServices, "f"), (service, index) => __awaiter(this, void 0, void 0, function* () {
61
+ if (untilIndex === undefined) {
62
+ return (0, functions_1.fetchAccountsForBlockchainServices)(__classPrivateFieldGet(this, _BSAggregator_blockchainServices, "f"), (service, index) => __awaiter(this, void 0, void 0, function* () {
63
+ return service.generateAccountFromMnemonic(mnemonic, index);
64
+ }));
65
+ }
66
+ return (0, functions_1.generateAccountUntilIndexForBlockchainService)(__classPrivateFieldGet(this, _BSAggregator_blockchainServices, "f"), untilIndex, (service, index) => __awaiter(this, void 0, void 0, function* () {
62
67
  return service.generateAccountFromMnemonic(mnemonic, index);
63
68
  }));
64
69
  });
@@ -12,6 +12,7 @@ export declare function wait(ms: number): Promise<unknown>;
12
12
  export declare function waitForTransaction<BSName extends string = string>(service: BlockchainService<BSName>, txId: string): Promise<boolean>;
13
13
  export declare function waitForAccountTransaction<BSName extends string = string>(service: BlockchainService<BSName>, txId: string, account: Account<BSName>, maxAttempts?: number): Promise<boolean>;
14
14
  export declare function fetchAccountsForBlockchainServices<BSName extends string = string>(blockchainServices: BlockchainService<BSName>[], getAccountCallback: (service: BlockchainService<BSName>, index: number) => Promise<Account<BSName>>): Promise<Map<BSName, Account<BSName>[]>>;
15
+ export declare function generateAccountUntilIndexForBlockchainService<BSName extends string = string>(blockchainServices: BlockchainService<BSName>[], untilIndex: number, getAccountCallback: (service: BlockchainService<BSName>, index: number) => Promise<Account<BSName>>): Promise<Map<BSName, Account<BSName>[]>>;
15
16
  export declare function normalizeHash(hash: string): string;
16
17
  export declare function denormalizeHash(hash: string): string;
17
18
  export declare function countDecimals(value: string | number): number;
package/dist/functions.js CHANGED
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.formatNumber = exports.countDecimals = exports.denormalizeHash = exports.normalizeHash = exports.fetchAccountsForBlockchainServices = exports.waitForAccountTransaction = exports.waitForTransaction = exports.wait = exports.hasLedger = exports.hasExplorerService = exports.hasNft = exports.isCalculableFee = exports.isClaimable = exports.hasNameService = void 0;
12
+ exports.formatNumber = exports.countDecimals = exports.denormalizeHash = exports.normalizeHash = exports.generateAccountUntilIndexForBlockchainService = exports.fetchAccountsForBlockchainServices = exports.waitForAccountTransaction = exports.waitForTransaction = exports.wait = exports.hasLedger = exports.hasExplorerService = exports.hasNft = exports.isCalculableFee = exports.isClaimable = exports.hasNameService = void 0;
13
13
  function hasNameService(service) {
14
14
  return 'resolveNameServiceDomain' in service && 'validateNameServiceDomainFormat' in service;
15
15
  }
@@ -107,11 +107,32 @@ function fetchAccountsForBlockchainServices(blockchainServices, getAccountCallba
107
107
  }
108
108
  accountsByBlockchainService.set(service.name, accounts);
109
109
  }));
110
- yield Promise.all(promises);
110
+ yield Promise.allSettled(promises);
111
111
  return accountsByBlockchainService;
112
112
  });
113
113
  }
114
114
  exports.fetchAccountsForBlockchainServices = fetchAccountsForBlockchainServices;
115
+ function generateAccountUntilIndexForBlockchainService(blockchainServices, untilIndex, getAccountCallback) {
116
+ return __awaiter(this, void 0, void 0, function* () {
117
+ if (untilIndex < 0) {
118
+ throw new Error('Invalid index');
119
+ }
120
+ const accountsByBlockchainService = new Map();
121
+ const promises = blockchainServices.map((service) => __awaiter(this, void 0, void 0, function* () {
122
+ let index = 0;
123
+ const accounts = [];
124
+ while (index <= untilIndex) {
125
+ const generatedAccount = yield getAccountCallback(service, index);
126
+ accounts.push(generatedAccount);
127
+ index++;
128
+ }
129
+ accountsByBlockchainService.set(service.name, accounts);
130
+ }));
131
+ yield Promise.allSettled(promises);
132
+ return accountsByBlockchainService;
133
+ });
134
+ }
135
+ exports.generateAccountUntilIndexForBlockchainService = generateAccountUntilIndexForBlockchainService;
115
136
  function normalizeHash(hash) {
116
137
  return hash.replace('0x', '').toLowerCase();
117
138
  }
@@ -226,7 +226,7 @@ export type GetLedgerTransport<BSName extends string = string> = (account: Accou
226
226
  export interface LedgerService<BSName extends string = string> {
227
227
  emitter: LedgerServiceEmitter;
228
228
  getLedgerTransport?: GetLedgerTransport<BSName>;
229
- getAccounts(transport: Transport): Promise<Account<BSName>[]>;
229
+ getAccounts(transport: Transport, untilIndex?: number): Promise<Account<BSName>[]>;
230
230
  getAccount(transport: Transport, index: number): Promise<Account<BSName>>;
231
231
  }
232
232
  export type SwapServiceToken<BSName extends string = string> = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cityofzion/blockchain-service",
3
- "version": "1.14.0",
3
+ "version": "1.15.0",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "repository": "https://github.com/CityOfZion/blockchain-services",