@polymeshassociation/polymesh-sdk 23.2.0 → 23.3.1

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 (61) hide show
  1. package/CHANGELOG.md +2 -9
  2. package/api/client/Claims.js +2 -2
  3. package/api/client/Claims.js.map +1 -1
  4. package/api/entities/Asset/Fungible/index.d.ts.map +1 -1
  5. package/api/entities/Asset/Fungible/index.js +12 -5
  6. package/api/entities/Asset/Fungible/index.js.map +1 -1
  7. package/api/entities/DefaultTrustedClaimIssuer.d.ts.map +1 -1
  8. package/api/entities/DefaultTrustedClaimIssuer.js +2 -1
  9. package/api/entities/DefaultTrustedClaimIssuer.js.map +1 -1
  10. package/api/entities/DividendDistribution/index.d.ts.map +1 -1
  11. package/api/entities/DividendDistribution/index.js +4 -2
  12. package/api/entities/DividendDistribution/index.js.map +1 -1
  13. package/api/entities/Identity/AssetPermissions.d.ts.map +1 -1
  14. package/api/entities/Identity/AssetPermissions.js +4 -4
  15. package/api/entities/Identity/AssetPermissions.js.map +1 -1
  16. package/api/entities/Identity/index.d.ts.map +1 -1
  17. package/api/entities/Identity/index.js +20 -6
  18. package/api/entities/Identity/index.js.map +1 -1
  19. package/api/entities/Instruction/index.d.ts.map +1 -1
  20. package/api/entities/Instruction/index.js +24 -6
  21. package/api/entities/Instruction/index.js.map +1 -1
  22. package/api/entities/Portfolio/index.d.ts.map +1 -1
  23. package/api/entities/Portfolio/index.js +48 -67
  24. package/api/entities/Portfolio/index.js.map +1 -1
  25. package/api/entities/Venue/index.d.ts.map +1 -1
  26. package/api/entities/Venue/index.js +26 -4
  27. package/api/entities/Venue/index.js.map +1 -1
  28. package/base/Context.d.ts +2 -1
  29. package/base/Context.d.ts.map +1 -1
  30. package/base/Context.js.map +1 -1
  31. package/middleware/newSettlementsQueries.d.ts +42 -0
  32. package/middleware/newSettlementsQueries.d.ts.map +1 -0
  33. package/middleware/newSettlementsQueries.js +243 -0
  34. package/middleware/newSettlementsQueries.js.map +1 -0
  35. package/middleware/queries.d.ts +13 -1
  36. package/middleware/queries.d.ts.map +1 -1
  37. package/middleware/queries.js +26 -11
  38. package/middleware/queries.js.map +1 -1
  39. package/middleware/typesLatest.d.ts +114444 -0
  40. package/middleware/typesLatest.d.ts.map +1 -0
  41. package/middleware/typesLatest.js +51768 -0
  42. package/middleware/typesLatest.js.map +1 -0
  43. package/middleware/typesV1.d.ts +1 -0
  44. package/middleware/typesV1.d.ts.map +1 -1
  45. package/middleware/typesV1.js +1 -0
  46. package/middleware/typesV1.js.map +1 -1
  47. package/npm-package/polymeshassociation-polymesh-sdk-23.3.1.tgz +0 -0
  48. package/package.json +1 -1
  49. package/utils/constants.d.ts +2 -1
  50. package/utils/constants.d.ts.map +1 -1
  51. package/utils/constants.js +3 -2
  52. package/utils/constants.js.map +1 -1
  53. package/utils/conversion.d.ts +27 -3
  54. package/utils/conversion.d.ts.map +1 -1
  55. package/utils/conversion.js +232 -35
  56. package/utils/conversion.js.map +1 -1
  57. package/utils/internal.d.ts +15 -0
  58. package/utils/internal.d.ts.map +1 -1
  59. package/utils/internal.js +44 -1
  60. package/utils/internal.js.map +1 -1
  61. package/npm-package/polymeshassociation-polymesh-sdk-23.2.0.tgz +0 -0
@@ -13,6 +13,15 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
13
13
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
17
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
18
+ return new (P || (P = Promise))(function (resolve, reject) {
19
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
20
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
21
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
22
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
23
+ });
24
+ };
16
25
  var __importDefault = (this && this.__importDefault) || function (mod) {
17
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
27
  };
@@ -20,7 +29,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
20
29
  exports.u32ToBigNumber = exports.bigNumberToU32 = exports.meshPermissionsToPermissions = exports.extrinsicPermissionsToTransactionPermissions = exports.permissionsToMeshPermissions = exports.transactionPermissionsToExtrinsicPermissions = exports.transactionPermissionsToTxGroups = exports.txGroupToTxTags = exports.textToString = exports.stringToText = exports.portfolioToPortfolioKind = exports.portfolioIdToMeshPortfolioId = exports.portfolioLikeToPortfolio = exports.portfolioIdToPortfolio = exports.portfolioLikeToPortfolioId = exports.portfolioToPortfolioId = exports.meshPortfolioIdToPortfolio = exports.claimPercentageToClaimPercentageRestrictionValue = exports.claimCountToClaimCountRestrictionValue = exports.meshClaimToInputStatClaim = exports.permillToBigNumber = exports.percentageToPermill = exports.bigNumberToU128 = exports.bigNumberToU64 = exports.u128ToBigNumber = exports.u64ToBigNumber = exports.signerToString = exports.signerToSignatory = exports.signerValueToSigner = exports.signerToSignerValue = exports.signatoryToSignerValue = exports.signerValueToSignatory = exports.identityIdToString = exports.stringToIdentityId = exports.stringToBlockHash = exports.stringToHash = exports.hashToString = exports.accountIdToString = exports.stringToAccountId = exports.momentToDate = exports.dateToMoment = exports.stringToU8aFixed = exports.tickerToString = exports.stringToTickerKey = exports.stringToTicker = exports.bytesToString = exports.stringToBytes = exports.boolToBoolean = exports.booleanToBool = exports.tickerToDid = void 0;
21
30
  exports.txTagToExtrinsicIdentifier = exports.extrinsicIdentifierToTxTag = exports.txTagToProtocolOp = exports.complianceRequirementToRequirement = exports.complianceRequirementResultToRequirementCompliance = exports.requirementToComplianceRequirement = exports.trustedClaimIssuerToTrustedIssuer = exports.trustedIssuerToTrustedClaimIssuer = exports.meshClaimTypeToClaimType = exports.stringToTargetIdentity = exports.statsClaimToStatClaimInputType = exports.meshClaimToClaim = exports.middlewareEventDetailsToEventIdentifier = exports.scopeToMiddlewareScope = exports.middlewareScopeToScope = exports.claimToMeshClaim = exports.cddIdToString = exports.stringToCddId = exports.meshScopeToScope = exports.scopeToMeshScope = exports.canTransferResultToTransferStatus = exports.cddStatusToBoolean = exports.documentToAssetDocument = exports.assetDocumentToDocument = exports.documentHashToString = exports.stringToDocumentHash = exports.assetIdentifierToSecurityIdentifier = exports.securityIdentifierToAssetIdentifier = exports.isFigiValid = exports.isLeiValid = exports.isCusipValid = exports.isIsinValid = exports.fundingRoundToAssetFundingRound = exports.nameToAssetName = exports.posRatioToBigNumber = exports.assetTypeToKnownOrId = exports.internalNftTypeToNftType = exports.internalAssetTypeToAssetType = exports.u8ToTransferStatus = exports.stringToMemo = exports.authorizationDataToAuthorization = exports.agentGroupToPermissionGroup = exports.balanceToBigNumber = exports.bigNumberToBalance = exports.authorizationTypeToMeshAuthorizationType = exports.authorizationToAuthorizationData = exports.agentGroupToPermissionGroupIdentifier = exports.permissionGroupIdentifierToAgentGroup = exports.u8ToBigNumber = exports.u16ToBigNumber = void 0;
22
31
  exports.createStat2ndKey = exports.transferRestrictionTypeToStatOpType = exports.statTypeToStatOpType = exports.meshStatToStatType = exports.statUpdatesToBtreeStatUpdate = exports.keyAndValueToStatUpdate = exports.transferConditionsToBtreeTransferConditions = exports.statisticStatTypesToBtreeStatType = exports.sortStatsByClaimType = exports.statisticsOpTypeToStatType = exports.corporateActionParamsToMeshCorporateActionArgs = exports.corporateActionIdentifierToCaId = exports.distributionToDividendDistributionParams = exports.caTaxWithholdingsToMeshTaxWithholdings = exports.targetsToTargetIdentities = exports.targetIdentitiesToCorporateActionTargets = exports.checkpointToRecordDateSpec = exports.corporateActionKindToCaKind = exports.meshCorporateActionToCorporateActionParams = exports.fundraiserToOfferingDetails = exports.fundraiserTierToTier = exports.middlewarePortfolioToPortfolio = exports.permissionsLikeToPermissions = exports.offeringTierToPriceTier = exports.granularCanTransferResultToTransferBreakdown = exports.nftDispatchErrorToTransferError = exports.transferConditionToTransferRestriction = exports.identitiesToBtreeSet = exports.transferRestrictionToPolymeshTransferCondition = exports.claimIssuerToMeshClaimIssuer = exports.claimTypeToMeshClaimType = exports.nftMovementToPortfolioFund = exports.fungibleMovementToPortfolioFund = exports.nftToMeshNft = exports.toIdentityWithClaimsArray = exports.middlewareClaimToClaimData = exports.endConditionToSettlementType = exports.meshSettlementTypeToEndCondition = exports.meshAffirmationStatusToAffirmationStatus = exports.meshInstructionStatusToInstructionStatus = exports.venueTypeToMeshVenueType = exports.meshVenueTypeToVenueType = exports.secondaryAccountToMeshSecondaryKey = exports.transactionToTxTag = exports.transactionHexToTxTag = exports.coerceHexToString = exports.addressToKey = exports.keyToAddress = exports.moduleAddressToString = exports.assetComplianceResultToCompliance = void 0;
23
- exports.toCustomClaimTypeWithIdentity = exports.nftInputToNftMetadataVec = exports.nftInputToNftMetadataAttribute = exports.meshNftToNftId = exports.meshMetadataKeyToMetadataKey = exports.collectionKeysToMetadataKeys = exports.middlewareAuthorizationDataToAuthorization = exports.middlewarePermissionsDataToPermissions = exports.datesToScheduleCheckpoints = exports.middlewareAgentGroupDataToPermissionGroup = exports.legToNonFungibleLeg = exports.legToFungibleLeg = exports.middlewarePortfolioDataToPortfolio = exports.expiryToMoment = exports.middlewareInstructionToHistoricInstruction = exports.instructionMemoToString = exports.metadataValueDetailToMeshMetadataValueDetail = exports.metadataValueToMeshMetadataValue = exports.meshMetadataValueToMetadataValue = exports.metadataToMeshMetadataKey = exports.meshMetadataSpecToMetadataSpec = exports.metadataSpecToMeshMetadataSpec = exports.meshProposalStatusToProposalStatus = exports.inputStatTypeToMeshStatType = exports.countStatInputToStatUpdates = exports.claimCountStatInputToStatUpdates = exports.toExemptKey = exports.complianceConditionsToBtreeSet = exports.sortTransferRestrictionByClaimValue = void 0;
32
+ exports.latestMiddlewareInstructionToHistoricInstruction = exports.latestMiddlewareDataToHistoricalSettlements = exports.latestMiddlewareLegToLeg = exports.toHistoricalSettlements = exports.portfolioIdStringToPortfolio = exports.toCustomClaimTypeWithIdentity = exports.nftInputToNftMetadataVec = exports.nftInputToNftMetadataAttribute = exports.meshNftToNftId = exports.meshMetadataKeyToMetadataKey = exports.collectionKeysToMetadataKeys = exports.middlewareAuthorizationDataToAuthorization = exports.middlewarePermissionsDataToPermissions = exports.datesToScheduleCheckpoints = exports.middlewareAgentGroupDataToPermissionGroup = exports.legToNonFungibleLeg = exports.legToFungibleLeg = exports.middlewarePortfolioDataToPortfolio = exports.expiryToMoment = exports.middlewareInstructionToHistoricInstruction = exports.instructionMemoToString = exports.metadataValueDetailToMeshMetadataValueDetail = exports.metadataValueToMeshMetadataValue = exports.meshMetadataValueToMetadataValue = exports.metadataToMeshMetadataKey = exports.meshMetadataSpecToMetadataSpec = exports.metadataSpecToMeshMetadataSpec = exports.meshProposalStatusToProposalStatus = exports.inputStatTypeToMeshStatType = exports.countStatInputToStatUpdates = exports.claimCountStatInputToStatUpdates = exports.toExemptKey = exports.complianceConditionsToBtreeSet = exports.sortTransferRestrictionByClaimValue = void 0;
24
33
  const util_1 = require("@polkadot/util");
25
34
  const util_crypto_1 = require("@polkadot/util-crypto");
26
35
  const bignumber_js_1 = __importDefault(require("bignumber.js"));
@@ -30,6 +39,7 @@ const utils_1 = require("../api/procedures/utils");
30
39
  const utils_2 = require("../generated/utils");
31
40
  const internal_1 = require("../internal");
32
41
  const types_1 = require("../middleware/types");
42
+ const typesLatest_1 = require("../middleware/typesLatest");
33
43
  const typesV1_1 = require("../middleware/typesV1");
34
44
  const types_2 = require("../types");
35
45
  const internal_2 = require("../types/internal");
@@ -1698,7 +1708,11 @@ function middlewareScopeToScope(scope) {
1698
1708
  const { type, value } = scope;
1699
1709
  switch (type) {
1700
1710
  case typesV1_1.ClaimScopeTypeEnum.Ticker:
1701
- return { type: types_2.ScopeType.Ticker, value: (0, internal_3.removePadding)(value) };
1711
+ case typesV1_1.ClaimScopeTypeEnum.Asset:
1712
+ return {
1713
+ type: types_2.ScopeType.Ticker,
1714
+ value: (0, internal_3.getAssetIdFromMiddleware)({ id: value, ticker: value }),
1715
+ };
1702
1716
  case typesV1_1.ClaimScopeTypeEnum.Identity:
1703
1717
  case typesV1_1.ClaimScopeTypeEnum.Custom:
1704
1718
  return { type: scope.type, value };
@@ -1715,18 +1729,29 @@ exports.middlewareScopeToScope = middlewareScopeToScope;
1715
1729
  /**
1716
1730
  * @hidden
1717
1731
  */
1718
- function scopeToMiddlewareScope(scope, padTicker = true) {
1719
- const { type, value } = scope;
1720
- switch (type) {
1721
- case types_2.ScopeType.Ticker:
1722
- return {
1723
- type: typesV1_1.ClaimScopeTypeEnum.Ticker,
1724
- value: padTicker ? (0, lodash_1.padEnd)(value, 12, '\0') : value,
1725
- };
1726
- case types_2.ScopeType.Identity:
1727
- case types_2.ScopeType.Custom:
1728
- return { type: typesV1_1.ClaimScopeTypeEnum[scope.type], value };
1729
- }
1732
+ function scopeToMiddlewareScope(scope, context) {
1733
+ return __awaiter(this, void 0, void 0, function* () {
1734
+ const { type, value } = scope;
1735
+ switch (type) {
1736
+ case types_2.ScopeType.Ticker: {
1737
+ const middlewareAssetId = yield (0, internal_3.getAssetIdForMiddleware)(value, context);
1738
+ if (value === middlewareAssetId) {
1739
+ // old SQ is used
1740
+ return {
1741
+ type: typesV1_1.ClaimScopeTypeEnum.Ticker,
1742
+ value,
1743
+ };
1744
+ }
1745
+ return {
1746
+ type: typesV1_1.ClaimScopeTypeEnum.Asset,
1747
+ value: middlewareAssetId,
1748
+ };
1749
+ }
1750
+ case types_2.ScopeType.Identity:
1751
+ case types_2.ScopeType.Custom:
1752
+ return { type: typesV1_1.ClaimScopeTypeEnum[scope.type], value };
1753
+ }
1754
+ });
1730
1755
  }
1731
1756
  exports.scopeToMiddlewareScope = scopeToMiddlewareScope;
1732
1757
  /**
@@ -1746,7 +1771,8 @@ exports.middlewareEventDetailsToEventIdentifier = middlewareEventDetailsToEventI
1746
1771
  * @hidden
1747
1772
  */
1748
1773
  function meshClaimToClaim(claim) {
1749
- if (claim.isJurisdiction) {
1774
+ const type = claim.type;
1775
+ if (type === 'Jurisdiction') {
1750
1776
  const [code, scope] = claim.asJurisdiction;
1751
1777
  return {
1752
1778
  type: types_2.ClaimType.Jurisdiction,
@@ -1754,52 +1780,63 @@ function meshClaimToClaim(claim) {
1754
1780
  scope: meshScopeToScope(scope),
1755
1781
  };
1756
1782
  }
1757
- if (claim.isAccredited) {
1783
+ if (type === 'Accredited') {
1758
1784
  return {
1759
1785
  type: types_2.ClaimType.Accredited,
1760
1786
  scope: meshScopeToScope(claim.asAccredited),
1761
1787
  };
1762
1788
  }
1763
- if (claim.isAffiliate) {
1789
+ if (type === 'Affiliate') {
1764
1790
  return {
1765
1791
  type: types_2.ClaimType.Affiliate,
1766
1792
  scope: meshScopeToScope(claim.asAffiliate),
1767
1793
  };
1768
1794
  }
1769
- if (claim.isBuyLockup) {
1795
+ if (type === 'BuyLockup') {
1770
1796
  return {
1771
1797
  type: types_2.ClaimType.BuyLockup,
1772
1798
  scope: meshScopeToScope(claim.asBuyLockup),
1773
1799
  };
1774
1800
  }
1775
- if (claim.isSellLockup) {
1801
+ if (type === 'SellLockup') {
1776
1802
  return {
1777
1803
  type: types_2.ClaimType.SellLockup,
1778
1804
  scope: meshScopeToScope(claim.asSellLockup),
1779
1805
  };
1780
1806
  }
1781
- if (claim.isCustomerDueDiligence) {
1807
+ if (type === 'CustomerDueDiligence') {
1782
1808
  return {
1783
1809
  type: types_2.ClaimType.CustomerDueDiligence,
1784
1810
  id: cddIdToString(claim.asCustomerDueDiligence),
1785
1811
  };
1786
1812
  }
1787
- if (claim.isKnowYourCustomer) {
1813
+ if (type === 'KnowYourCustomer') {
1788
1814
  return {
1789
1815
  type: types_2.ClaimType.KnowYourCustomer,
1790
1816
  scope: meshScopeToScope(claim.asKnowYourCustomer),
1791
1817
  };
1792
1818
  }
1793
- if (claim.isExempted) {
1819
+ if (type === 'Exempted') {
1794
1820
  return {
1795
1821
  type: types_2.ClaimType.Exempted,
1796
1822
  scope: meshScopeToScope(claim.asExempted),
1797
1823
  };
1798
1824
  }
1799
- return {
1800
- type: types_2.ClaimType.Blocked,
1801
- scope: meshScopeToScope(claim.asBlocked),
1802
- };
1825
+ if (type === 'Custom') {
1826
+ const [rawId, scope] = claim.asCustom;
1827
+ return {
1828
+ type: types_2.ClaimType.Custom,
1829
+ scope: meshScopeToScope(scope.unwrapOrDefault()),
1830
+ customClaimTypeId: u32ToBigNumber(rawId),
1831
+ };
1832
+ }
1833
+ if (type === 'Blocked') {
1834
+ return {
1835
+ type: types_2.ClaimType.Blocked,
1836
+ scope: meshScopeToScope(claim.asBlocked),
1837
+ };
1838
+ }
1839
+ throw new utils_1.UnreachableCaseError(type);
1803
1840
  }
1804
1841
  exports.meshClaimToClaim = meshClaimToClaim;
1805
1842
  /**
@@ -1832,31 +1869,38 @@ exports.stringToTargetIdentity = stringToTargetIdentity;
1832
1869
  * @hidden
1833
1870
  */
1834
1871
  function meshClaimTypeToClaimType(claimType) {
1835
- if (claimType.isJurisdiction) {
1872
+ const type = claimType.type;
1873
+ if (type === 'Jurisdiction') {
1836
1874
  return types_2.ClaimType.Jurisdiction;
1837
1875
  }
1838
- if (claimType.isAccredited) {
1876
+ if (type === 'Accredited') {
1839
1877
  return types_2.ClaimType.Accredited;
1840
1878
  }
1841
- if (claimType.isAffiliate) {
1879
+ if (type === 'Affiliate') {
1842
1880
  return types_2.ClaimType.Affiliate;
1843
1881
  }
1844
- if (claimType.isBuyLockup) {
1882
+ if (type === 'BuyLockup') {
1845
1883
  return types_2.ClaimType.BuyLockup;
1846
1884
  }
1847
- if (claimType.isSellLockup) {
1885
+ if (type === 'SellLockup') {
1848
1886
  return types_2.ClaimType.SellLockup;
1849
1887
  }
1850
- if (claimType.isCustomerDueDiligence) {
1888
+ if (type === 'CustomerDueDiligence') {
1851
1889
  return types_2.ClaimType.CustomerDueDiligence;
1852
1890
  }
1853
- if (claimType.isKnowYourCustomer) {
1891
+ if (type === 'KnowYourCustomer') {
1854
1892
  return types_2.ClaimType.KnowYourCustomer;
1855
1893
  }
1856
- if (claimType.isExempted) {
1894
+ if (type === 'Exempted') {
1857
1895
  return types_2.ClaimType.Exempted;
1858
1896
  }
1859
- return types_2.ClaimType.Blocked;
1897
+ if (type === 'Custom') {
1898
+ return types_2.ClaimType.Custom;
1899
+ }
1900
+ if (type === 'Blocked') {
1901
+ return types_2.ClaimType.Blocked;
1902
+ }
1903
+ throw new utils_1.UnreachableCaseError(type);
1860
1904
  }
1861
1905
  exports.meshClaimTypeToClaimType = meshClaimTypeToClaimType;
1862
1906
  /**
@@ -3625,4 +3669,157 @@ function toCustomClaimTypeWithIdentity(data) {
3625
3669
  });
3626
3670
  }
3627
3671
  exports.toCustomClaimTypeWithIdentity = toCustomClaimTypeWithIdentity;
3672
+ /**
3673
+ * @hidden
3674
+ */
3675
+ function portfolioIdStringToPortfolio(id) {
3676
+ const [identityId, number] = id.split('/');
3677
+ return { identityId, number: parseInt(number, 10) };
3678
+ }
3679
+ exports.portfolioIdStringToPortfolio = portfolioIdStringToPortfolio;
3680
+ /**
3681
+ * @hidden
3682
+ */
3683
+ function portfolioMovementsToHistoricSettlements(portfolioMovements, context, handleMiddlewareAddress) {
3684
+ return portfolioMovements.map(({ createdBlock, fromId, toId, asset, amount, address: accountAddress }) => {
3685
+ const { blockId, hash } = createdBlock;
3686
+ return {
3687
+ blockNumber: new bignumber_js_1.default(blockId),
3688
+ blockHash: hash,
3689
+ status: types_1.SettlementResultEnum.Executed,
3690
+ accounts: [handleMiddlewareAddress(accountAddress, context)],
3691
+ legs: [
3692
+ {
3693
+ asset: new internal_1.FungibleAsset({ ticker: (0, internal_3.getAssetIdFromMiddleware)(asset) }, context),
3694
+ amount: new bignumber_js_1.default(amount).shiftedBy(-6),
3695
+ direction: typesV1_1.SettlementDirectionEnum.None,
3696
+ from: middlewarePortfolioToPortfolio(portfolioIdStringToPortfolio(fromId), context),
3697
+ to: middlewarePortfolioToPortfolio(portfolioIdStringToPortfolio(toId), context),
3698
+ },
3699
+ ],
3700
+ };
3701
+ });
3702
+ }
3703
+ /**
3704
+ * @hidden
3705
+ */
3706
+ function toHistoricalSettlements(settlementsResult, portfolioMovements, portfolioFilter, context) {
3707
+ let data = [];
3708
+ const getDirection = (fromId) => {
3709
+ if (fromId === portfolioFilter) {
3710
+ return typesV1_1.SettlementDirectionEnum.Outgoing;
3711
+ }
3712
+ return typesV1_1.SettlementDirectionEnum.Incoming;
3713
+ };
3714
+ /* eslint-disable @typescript-eslint/no-non-null-assertion */
3715
+ settlementsResult.forEach(({ settlement }) => {
3716
+ const { createdBlock, result: settlementResult, legs: { nodes: legs }, } = settlement;
3717
+ const { blockId, hash } = createdBlock;
3718
+ data.push({
3719
+ blockNumber: new bignumber_js_1.default(blockId),
3720
+ blockHash: hash,
3721
+ status: settlementResult,
3722
+ accounts: legs[0].addresses.map((accountAddress) => new internal_1.Account({ address: keyToAddress(accountAddress, context) }, context)),
3723
+ legs: legs.map(({ fromId, toId, assetId, amount }) => ({
3724
+ asset: new internal_1.FungibleAsset({ ticker: assetId }, context),
3725
+ amount: new bignumber_js_1.default(amount).shiftedBy(-6),
3726
+ direction: getDirection(fromId),
3727
+ from: middlewarePortfolioToPortfolio(portfolioIdStringToPortfolio(fromId), context),
3728
+ to: middlewarePortfolioToPortfolio(portfolioIdStringToPortfolio(toId), context),
3729
+ })),
3730
+ });
3731
+ });
3732
+ data = [
3733
+ ...data,
3734
+ ...portfolioMovementsToHistoricSettlements(portfolioMovements, context, (accountAddress) => new internal_1.Account({ address: keyToAddress(accountAddress, context) }, context)),
3735
+ ];
3736
+ /* eslint-enable @typescript-eslint/no-non-null-assertion */
3737
+ return data.sort((a, b) => a.blockNumber.minus(b.blockNumber).toNumber());
3738
+ }
3739
+ exports.toHistoricalSettlements = toHistoricalSettlements;
3740
+ /**
3741
+ * @hidden
3742
+ */
3743
+ function latestMiddlewareLegToLeg(leg, context) {
3744
+ const { from, fromPortfolio, to, toPortfolio, assetId, ticker, amount } = leg;
3745
+ return {
3746
+ asset: new internal_1.FungibleAsset({ ticker: (0, internal_3.getAssetIdFromMiddleware)({ id: assetId, ticker }) }, context),
3747
+ amount: new bignumber_js_1.default(amount).shiftedBy(-6),
3748
+ from: middlewarePortfolioToPortfolio({ identityId: from, number: fromPortfolio }, context),
3749
+ to: middlewarePortfolioToPortfolio({ identityId: to, number: toPortfolio }, context),
3750
+ };
3751
+ }
3752
+ exports.latestMiddlewareLegToLeg = latestMiddlewareLegToLeg;
3753
+ /**
3754
+ * @hidden
3755
+ */
3756
+ function latestMiddlewareDataToHistoricalSettlements(settlementsResult, portfolioMovements, filter, context) {
3757
+ let data = [];
3758
+ const getDirection = (leg) => {
3759
+ const { from, fromPortfolio, to, toPortfolio } = leg;
3760
+ const { identityId, portfolio } = filter;
3761
+ let result = typesV1_1.SettlementDirectionEnum.None;
3762
+ if (from === identityId && fromPortfolio === portfolio) {
3763
+ result = typesV1_1.SettlementDirectionEnum.Incoming;
3764
+ }
3765
+ else if (to === identityId && toPortfolio === portfolio) {
3766
+ result = typesV1_1.SettlementDirectionEnum.Outgoing;
3767
+ }
3768
+ return result;
3769
+ };
3770
+ /* eslint-disable @typescript-eslint/no-non-null-assertion */
3771
+ settlementsResult.forEach(({ instruction }) => {
3772
+ const { createdBlock, status, legs: { nodes: legs }, } = instruction;
3773
+ const { blockId, hash } = createdBlock;
3774
+ data.push({
3775
+ blockNumber: new bignumber_js_1.default(blockId),
3776
+ blockHash: hash,
3777
+ status: status,
3778
+ accounts: legs[0].addresses.map((address) => new internal_1.Account({ address }, context)),
3779
+ legs: legs
3780
+ .filter(leg => leg.legType === types_1.LegTypeEnum.Fungible)
3781
+ .map(leg => (Object.assign(Object.assign({}, latestMiddlewareLegToLeg(leg, context)), { direction: getDirection(leg) }))),
3782
+ });
3783
+ });
3784
+ data = [
3785
+ ...data,
3786
+ ...portfolioMovementsToHistoricSettlements(portfolioMovements, context, (accountAddress) => new internal_1.Account({ address: accountAddress }, context)),
3787
+ ];
3788
+ /* eslint-enable @typescript-eslint/no-non-null-assertion */
3789
+ return data.sort((a, b) => a.blockNumber.minus(b.blockNumber).toNumber());
3790
+ }
3791
+ exports.latestMiddlewareDataToHistoricalSettlements = latestMiddlewareDataToHistoricalSettlements;
3792
+ /**
3793
+ * @hidden
3794
+ */
3795
+ function latestMiddlewareInstructionToHistoricInstruction(instruction, context) {
3796
+ /* eslint-disable @typescript-eslint/no-non-null-assertion */
3797
+ const { id: instructionId, status, type, endBlock, endAfterBlock, tradeDate, valueDate, legs: { nodes: legs }, memo, createdBlock, venueId, } = instruction;
3798
+ const { blockId, hash, datetime } = createdBlock;
3799
+ let typeDetails;
3800
+ if (type === typesLatest_1.InstructionTypeEnum.SettleManual) {
3801
+ typeDetails = {
3802
+ type: types_2.InstructionType.SettleManual,
3803
+ endAfterBlock: new bignumber_js_1.default(endAfterBlock),
3804
+ };
3805
+ }
3806
+ else if (type === typesLatest_1.InstructionTypeEnum.SettleOnBlock) {
3807
+ typeDetails = {
3808
+ type: types_2.InstructionType.SettleOnBlock,
3809
+ endBlock: new bignumber_js_1.default(endBlock),
3810
+ };
3811
+ }
3812
+ else {
3813
+ typeDetails = {
3814
+ type: types_2.InstructionType.SettleOnAffirmation,
3815
+ };
3816
+ }
3817
+ return Object.assign(Object.assign({ id: new bignumber_js_1.default(instructionId), blockNumber: new bignumber_js_1.default(blockId), blockHash: hash, status,
3818
+ tradeDate,
3819
+ valueDate }, typeDetails), { memo: memo !== null && memo !== void 0 ? memo : null, venueId: new bignumber_js_1.default(venueId), createdAt: new Date(datetime), legs: legs
3820
+ .filter(leg => leg.legType === types_1.LegTypeEnum.Fungible)
3821
+ .map(leg => latestMiddlewareLegToLeg(leg, context)) });
3822
+ /* eslint-enable @typescript-eslint/no-non-null-assertion */
3823
+ }
3824
+ exports.latestMiddlewareInstructionToHistoricInstruction = latestMiddlewareInstructionToHistoricInstruction;
3628
3825
  //# sourceMappingURL=conversion.js.map