@heliofi/common 0.2.279 → 0.2.280

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.
Files changed (20) hide show
  1. package/dist/src/domain/model/blockchainEngine/entities/BlockchainEngine.entity.d.ts +1 -0
  2. package/dist/src/domain/model/blockchainEngine/entities/BlockchainEngine.entity.js.map +1 -1
  3. package/dist/src/domain/model/currency/entities/SlimCurrencyWithPopulatedBlockchain.entity.d.ts +5 -0
  4. package/dist/src/domain/model/currency/entities/SlimCurrencyWithPopulatedBlockchain.entity.js +3 -0
  5. package/dist/src/domain/model/currency/entities/SlimCurrencyWithPopulatedBlockchain.entity.js.map +1 -0
  6. package/dist/src/domain/model/currency/entities/index.d.ts +1 -0
  7. package/dist/src/domain/model/currency/entities/index.js +1 -0
  8. package/dist/src/domain/model/currency/entities/index.js.map +1 -1
  9. package/dist/src/domain/model/hypercore/entities/HyperCoreLedgerEntry.d.ts +1 -0
  10. package/dist/src/domain/model/withdraw/dtos/preparedWithdrawal.dto.d.ts +1 -1
  11. package/dist/src/domain/model/withdraw/dtos/preparedWithdrawal.dto.js +0 -1
  12. package/dist/src/domain/model/withdraw/dtos/preparedWithdrawal.dto.js.map +1 -1
  13. package/dist/src/domain/model/withdraw/entities/PublicWithdrawalConfig.entity.d.ts +2 -2
  14. package/dist/src/domain/model/withdraw/entities/WithdrawalCustomerSwapRoute.entity.d.ts +2 -2
  15. package/dist/src/domain/model/withdraw/entities/WithdrawalCustomerSwapRoutesResponse.entity.d.ts +2 -2
  16. package/dist/src/domain/services/PublicKeyService.d.ts +2 -0
  17. package/dist/src/domain/services/PublicKeyService.js +20 -0
  18. package/dist/src/domain/services/PublicKeyService.js.map +1 -1
  19. package/dist/tsconfig.tsbuildinfo +1 -1
  20. package/package.json +2 -2
@@ -3,4 +3,5 @@ import { BlockchainEngineType } from '../constants';
3
3
  export declare class BlockchainEngine extends Entity {
4
4
  id: string;
5
5
  type: BlockchainEngineType;
6
+ addressRegex?: string;
6
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BlockchainEngine.entity.js","sourceRoot":"","sources":["../../../../../../src/domain/model/blockchainEngine/entities/BlockchainEngine.entity.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AAGtC,MAAa,gBAAiB,SAAQ,eAAM;CAI3C;AAJD,4CAIC"}
1
+ {"version":3,"file":"BlockchainEngine.entity.js","sourceRoot":"","sources":["../../../../../../src/domain/model/blockchainEngine/entities/BlockchainEngine.entity.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AAGtC,MAAa,gBAAiB,SAAQ,eAAM;CAM3C;AAND,4CAMC"}
@@ -0,0 +1,5 @@
1
+ import { Blockchain } from '../../blockchain';
2
+ import { SlimCurrencyWithBlockchain } from './SlimCurrencyWithBlockchain.entity';
3
+ export type SlimCurrencyWithPopulatedBlockchain = Omit<SlimCurrencyWithBlockchain, 'blockchain'> & {
4
+ blockchain: Blockchain;
5
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=SlimCurrencyWithPopulatedBlockchain.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SlimCurrencyWithPopulatedBlockchain.entity.js","sourceRoot":"","sources":["../../../../../../src/domain/model/currency/entities/SlimCurrencyWithPopulatedBlockchain.entity.ts"],"names":[],"mappings":""}
@@ -8,3 +8,4 @@ export * from './CurrencyTokenProgram';
8
8
  export * from './CurrencyInfo.entity';
9
9
  export * from './CurrencyWithBlockchain.entity';
10
10
  export * from './SlimCurrencyWithBlockchain.entity';
11
+ export * from './SlimCurrencyWithPopulatedBlockchain.entity';
@@ -24,4 +24,5 @@ __exportStar(require("./CurrencyTokenProgram"), exports);
24
24
  __exportStar(require("./CurrencyInfo.entity"), exports);
25
25
  __exportStar(require("./CurrencyWithBlockchain.entity"), exports);
26
26
  __exportStar(require("./SlimCurrencyWithBlockchain.entity"), exports);
27
+ __exportStar(require("./SlimCurrencyWithPopulatedBlockchain.entity"), exports);
27
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/domain/model/currency/entities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,wDAAsC;AACtC,iDAA+B;AAC/B,iDAA+B;AAC/B,oDAAkC;AAClC,8DAA4C;AAC5C,yDAAuC;AACvC,wDAAsC;AACtC,kEAAgD;AAChD,sEAAoD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/domain/model/currency/entities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,wDAAsC;AACtC,iDAA+B;AAC/B,iDAA+B;AAC/B,oDAAkC;AAClC,8DAA4C;AAC5C,yDAAuC;AACvC,wDAAsC;AACtC,kEAAgD;AAChD,sEAAoD;AACpD,+EAA6D"}
@@ -8,5 +8,6 @@ export interface HyperCoreLedgerEntry {
8
8
  destination?: string;
9
9
  usdValue?: string;
10
10
  user?: string;
11
+ nonce?: string | number | null;
11
12
  };
12
13
  }
@@ -3,5 +3,5 @@ export declare class PreparedWithdrawalDto {
3
3
  recipient: string;
4
4
  amount: string;
5
5
  toCurrencyId: string;
6
- sourceCurrencyId?: string;
6
+ sourceCurrencyId: string;
7
7
  }
@@ -33,7 +33,6 @@ __decorate([
33
33
  __metadata("design:type", String)
34
34
  ], PreparedWithdrawalDto.prototype, "toCurrencyId", void 0);
35
35
  __decorate([
36
- (0, class_validator_1.IsOptional)(),
37
36
  (0, class_validator_1.IsMongoId)(),
38
37
  __metadata("design:type", String)
39
38
  ], PreparedWithdrawalDto.prototype, "sourceCurrencyId", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"preparedWithdrawal.dto.js","sourceRoot":"","sources":["../../../../../../src/domain/model/withdraw/dtos/preparedWithdrawal.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAMyB;AAEzB,MAAa,qBAAqB;CAkCjC;AAlCD,sDAkCC;AA1BC;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;2DACQ;AAOrB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;wDACK;AAKlB;IADC,IAAA,yBAAO,EAAC,OAAO,CAAC;;qDACF;AAKf;IADC,IAAA,2BAAS,GAAE;;2DACS;AAQrB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;;+DACc"}
1
+ {"version":3,"file":"preparedWithdrawal.dto.js","sourceRoot":"","sources":["../../../../../../src/domain/model/withdraw/dtos/preparedWithdrawal.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA2E;AAE3E,MAAa,qBAAqB;CAgCjC;AAhCD,sDAgCC;AAxBC;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;2DACQ;AAOrB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;wDACK;AAKlB;IADC,IAAA,yBAAO,EAAC,OAAO,CAAC;;qDACF;AAKf;IADC,IAAA,2BAAS,GAAE;;2DACS;AAMrB;IADC,IAAA,2BAAS,GAAE;;+DACa"}
@@ -1,7 +1,7 @@
1
1
  import { WithdrawalConfigEntity } from './WithdrawalConfig.entity';
2
- import { SlimCurrencyWithBlockchain } from '../../currency/entities/SlimCurrencyWithBlockchain.entity';
2
+ import { SlimCurrencyWithPopulatedBlockchain } from '../../currency/entities/SlimCurrencyWithPopulatedBlockchain.entity';
3
3
  import { WithdrawalCurrenciesExchangeRate } from './WithdrawalCurrenciesExchangeRate.entity';
4
4
  export declare class PublicWithdrawalConfigEntity extends WithdrawalConfigEntity {
5
- fromCurrencies: SlimCurrencyWithBlockchain[];
5
+ fromCurrencies: SlimCurrencyWithPopulatedBlockchain[];
6
6
  exchangeRates: WithdrawalCurrenciesExchangeRate[];
7
7
  }
@@ -1,8 +1,8 @@
1
- import { SlimCurrencyWithBlockchain } from '../../currency/entities/SlimCurrencyWithBlockchain.entity';
1
+ import { SlimCurrencyWithPopulatedBlockchain } from '../../currency/entities/SlimCurrencyWithPopulatedBlockchain.entity';
2
2
  export declare class WithdrawalCustomerSwapRoute {
3
3
  id: string;
4
4
  fromCurrencyId: string;
5
- toCurrency: SlimCurrencyWithBlockchain;
5
+ toCurrency: SlimCurrencyWithPopulatedBlockchain;
6
6
  available: boolean;
7
7
  minimumAmountMinimalUnit: string | null;
8
8
  minimumAmountUsd: string;
@@ -1,6 +1,6 @@
1
1
  import { WithdrawalCustomerSwapRoute } from './WithdrawalCustomerSwapRoute.entity';
2
- import { SlimCurrencyWithBlockchain } from '../../currency/entities/SlimCurrencyWithBlockchain.entity';
2
+ import { SlimCurrencyWithPopulatedBlockchain } from '../../currency/entities/SlimCurrencyWithPopulatedBlockchain.entity';
3
3
  export declare class WithdrawalCustomerSwapRoutesResponse {
4
- fromCurrencies: SlimCurrencyWithBlockchain[];
4
+ fromCurrencies: SlimCurrencyWithPopulatedBlockchain[];
5
5
  routes: WithdrawalCustomerSwapRoute[];
6
6
  }
@@ -1,7 +1,9 @@
1
1
  import { GeneralNetwork } from '../constants';
2
+ import { BlockchainEngineType } from '../model/blockchainEngine';
2
3
  export declare class PublicKeyService {
3
4
  private static readonly EVM_ADDRESS_REGEX;
4
5
  private static readonly DOGE_MAINNET;
6
+ static validateAddressForEngine(engine: BlockchainEngineType, address: string, generalNetwork: GeneralNetwork): boolean;
5
7
  static validateAnyBlockchainAddress(address: string, generalNetwork?: GeneralNetwork): boolean;
6
8
  static validateSolAddress(address: string): boolean;
7
9
  static validateEvmAddressCaseInsensitive(address: string): boolean;
@@ -29,7 +29,27 @@ const bitcoinjs = __importStar(require("bitcoinjs-lib"));
29
29
  const js_sha3_1 = require("js-sha3");
30
30
  const tronweb_1 = require("tronweb");
31
31
  const constants_1 = require("../constants");
32
+ const blockchainEngine_1 = require("../model/blockchainEngine");
32
33
  class PublicKeyService {
34
+ static validateAddressForEngine(engine, address, generalNetwork) {
35
+ switch (engine) {
36
+ case blockchainEngine_1.BlockchainEngineType.EVM:
37
+ case blockchainEngine_1.BlockchainEngineType.HYPERCORE:
38
+ return this.validateEvmAddressCaseInsensitive(address);
39
+ case blockchainEngine_1.BlockchainEngineType.SOL:
40
+ return this.validateSolAddress(address);
41
+ case blockchainEngine_1.BlockchainEngineType.TRON:
42
+ return this.validateTronAddress(address);
43
+ case blockchainEngine_1.BlockchainEngineType.BTC:
44
+ return this.validateBTCAddress(address, generalNetwork);
45
+ case blockchainEngine_1.BlockchainEngineType.DOGE:
46
+ return this.validateDOGEAddress(address, generalNetwork);
47
+ default: {
48
+ const exhaustive = engine;
49
+ return exhaustive;
50
+ }
51
+ }
52
+ }
33
53
  static validateAnyBlockchainAddress(address, generalNetwork) {
34
54
  if (this.validateSolAddress(address)) {
35
55
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"PublicKeyService.js","sourceRoot":"","sources":["../../../../src/domain/services/PublicKeyService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PublicKeyService.js","sourceRoot":"","sources":["../../../../src/domain/services/PublicKeyService.ts"],"names":[],"mappings":"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"}