@cardano-sdk/projection 0.7.4 → 0.8.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 (89) hide show
  1. package/dist/cjs/operators/Mappers/certificates/index.d.ts +1 -0
  2. package/dist/cjs/operators/Mappers/certificates/index.d.ts.map +1 -1
  3. package/dist/cjs/operators/Mappers/certificates/index.js +1 -0
  4. package/dist/cjs/operators/Mappers/certificates/index.js.map +1 -1
  5. package/dist/cjs/operators/Mappers/certificates/withStakeKeyRegistrations.d.ts +12 -0
  6. package/dist/cjs/operators/Mappers/certificates/withStakeKeyRegistrations.d.ts.map +1 -0
  7. package/dist/cjs/operators/Mappers/certificates/withStakeKeyRegistrations.js +21 -0
  8. package/dist/cjs/operators/Mappers/certificates/withStakeKeyRegistrations.js.map +1 -0
  9. package/dist/cjs/operators/Mappers/index.d.ts +4 -0
  10. package/dist/cjs/operators/Mappers/index.d.ts.map +1 -1
  11. package/dist/cjs/operators/Mappers/index.js +4 -0
  12. package/dist/cjs/operators/Mappers/index.js.map +1 -1
  13. package/dist/cjs/operators/Mappers/util.d.ts +2 -1
  14. package/dist/cjs/operators/Mappers/util.d.ts.map +1 -1
  15. package/dist/cjs/operators/Mappers/util.js +9 -7
  16. package/dist/cjs/operators/Mappers/util.js.map +1 -1
  17. package/dist/cjs/operators/Mappers/withAddresses.d.ts +14 -0
  18. package/dist/cjs/operators/Mappers/withAddresses.d.ts.map +1 -0
  19. package/dist/cjs/operators/Mappers/withAddresses.js +50 -0
  20. package/dist/cjs/operators/Mappers/withAddresses.js.map +1 -0
  21. package/dist/cjs/operators/Mappers/withCIP67.d.ts +18 -0
  22. package/dist/cjs/operators/Mappers/withCIP67.d.ts.map +1 -0
  23. package/dist/cjs/operators/Mappers/withCIP67.js +35 -0
  24. package/dist/cjs/operators/Mappers/withCIP67.js.map +1 -0
  25. package/dist/cjs/operators/Mappers/withHandleMetadata.d.ts +22 -0
  26. package/dist/cjs/operators/Mappers/withHandleMetadata.d.ts.map +1 -0
  27. package/dist/cjs/operators/Mappers/withHandleMetadata.js +62 -0
  28. package/dist/cjs/operators/Mappers/withHandleMetadata.js.map +1 -0
  29. package/dist/cjs/operators/Mappers/withHandles.d.ts +8 -6
  30. package/dist/cjs/operators/Mappers/withHandles.d.ts.map +1 -1
  31. package/dist/cjs/operators/Mappers/withHandles.js +40 -42
  32. package/dist/cjs/operators/Mappers/withHandles.js.map +1 -1
  33. package/dist/cjs/operators/Mappers/withMint.d.ts +2 -0
  34. package/dist/cjs/operators/Mappers/withMint.d.ts.map +1 -1
  35. package/dist/cjs/operators/Mappers/withMint.js +4 -2
  36. package/dist/cjs/operators/Mappers/withMint.js.map +1 -1
  37. package/dist/cjs/operators/Mappers/withNftMetadata.d.ts +17 -0
  38. package/dist/cjs/operators/Mappers/withNftMetadata.d.ts.map +1 -0
  39. package/dist/cjs/operators/Mappers/withNftMetadata.js +38 -0
  40. package/dist/cjs/operators/Mappers/withNftMetadata.js.map +1 -0
  41. package/dist/cjs/operators/Mappers/withUtxo.d.ts +2 -1
  42. package/dist/cjs/operators/Mappers/withUtxo.d.ts.map +1 -1
  43. package/dist/cjs/operators/Mappers/withUtxo.js.map +1 -1
  44. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  45. package/dist/esm/operators/Mappers/certificates/index.d.ts +1 -0
  46. package/dist/esm/operators/Mappers/certificates/index.d.ts.map +1 -1
  47. package/dist/esm/operators/Mappers/certificates/index.js +1 -0
  48. package/dist/esm/operators/Mappers/certificates/index.js.map +1 -1
  49. package/dist/esm/operators/Mappers/certificates/withStakeKeyRegistrations.d.ts +12 -0
  50. package/dist/esm/operators/Mappers/certificates/withStakeKeyRegistrations.d.ts.map +1 -0
  51. package/dist/esm/operators/Mappers/certificates/withStakeKeyRegistrations.js +18 -0
  52. package/dist/esm/operators/Mappers/certificates/withStakeKeyRegistrations.js.map +1 -0
  53. package/dist/esm/operators/Mappers/index.d.ts +4 -0
  54. package/dist/esm/operators/Mappers/index.d.ts.map +1 -1
  55. package/dist/esm/operators/Mappers/index.js +4 -0
  56. package/dist/esm/operators/Mappers/index.js.map +1 -1
  57. package/dist/esm/operators/Mappers/util.d.ts +2 -1
  58. package/dist/esm/operators/Mappers/util.d.ts.map +1 -1
  59. package/dist/esm/operators/Mappers/util.js +7 -5
  60. package/dist/esm/operators/Mappers/util.js.map +1 -1
  61. package/dist/esm/operators/Mappers/withAddresses.d.ts +14 -0
  62. package/dist/esm/operators/Mappers/withAddresses.d.ts.map +1 -0
  63. package/dist/esm/operators/Mappers/withAddresses.js +44 -0
  64. package/dist/esm/operators/Mappers/withAddresses.js.map +1 -0
  65. package/dist/esm/operators/Mappers/withCIP67.d.ts +18 -0
  66. package/dist/esm/operators/Mappers/withCIP67.d.ts.map +1 -0
  67. package/dist/esm/operators/Mappers/withCIP67.js +29 -0
  68. package/dist/esm/operators/Mappers/withCIP67.js.map +1 -0
  69. package/dist/esm/operators/Mappers/withHandleMetadata.d.ts +22 -0
  70. package/dist/esm/operators/Mappers/withHandleMetadata.d.ts.map +1 -0
  71. package/dist/esm/operators/Mappers/withHandleMetadata.js +58 -0
  72. package/dist/esm/operators/Mappers/withHandleMetadata.js.map +1 -0
  73. package/dist/esm/operators/Mappers/withHandles.d.ts +8 -6
  74. package/dist/esm/operators/Mappers/withHandles.d.ts.map +1 -1
  75. package/dist/esm/operators/Mappers/withHandles.js +41 -43
  76. package/dist/esm/operators/Mappers/withHandles.js.map +1 -1
  77. package/dist/esm/operators/Mappers/withMint.d.ts +2 -0
  78. package/dist/esm/operators/Mappers/withMint.d.ts.map +1 -1
  79. package/dist/esm/operators/Mappers/withMint.js +4 -2
  80. package/dist/esm/operators/Mappers/withMint.js.map +1 -1
  81. package/dist/esm/operators/Mappers/withNftMetadata.d.ts +17 -0
  82. package/dist/esm/operators/Mappers/withNftMetadata.d.ts.map +1 -0
  83. package/dist/esm/operators/Mappers/withNftMetadata.js +31 -0
  84. package/dist/esm/operators/Mappers/withNftMetadata.js.map +1 -0
  85. package/dist/esm/operators/Mappers/withUtxo.d.ts +2 -1
  86. package/dist/esm/operators/Mappers/withUtxo.d.ts.map +1 -1
  87. package/dist/esm/operators/Mappers/withUtxo.js.map +1 -1
  88. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  89. package/package.json +9 -9
@@ -1,4 +1,5 @@
1
1
  export * from './withCertificates';
2
2
  export * from './withStakeKeys';
3
3
  export * from './withStakePools';
4
+ export * from './withStakeKeyRegistrations';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/operators/Mappers/certificates/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/operators/Mappers/certificates/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export * from './withCertificates';
2
2
  export * from './withStakeKeys';
3
3
  export * from './withStakePools';
4
+ export * from './withStakeKeyRegistrations';
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/operators/Mappers/certificates/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/operators/Mappers/certificates/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { Cardano } from '@cardano-sdk/core';
2
+ import { Ed25519KeyHashHex } from '@cardano-sdk/crypto';
3
+ import { WithCertificates } from './withCertificates';
4
+ export interface StakeKeyRegistration {
5
+ pointer: Cardano.Pointer;
6
+ stakeKeyHash: Ed25519KeyHashHex;
7
+ }
8
+ export interface WithStakeKeyRegistrations {
9
+ stakeKeyRegistrations: StakeKeyRegistration[];
10
+ }
11
+ export declare const withStakeKeyRegistrations: <SourceExtraRollForwardPropsIn extends WithCertificates, SourceExtraRollBackwardPropsIn extends WithCertificates & import("../../..").WithBlock>() => import("../../..").ExtChainSyncOperator<SourceExtraRollForwardPropsIn, SourceExtraRollBackwardPropsIn, WithStakeKeyRegistrations, WithStakeKeyRegistrations>;
12
+ //# sourceMappingURL=withStakeKeyRegistrations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withStakeKeyRegistrations.d.ts","sourceRoot":"","sources":["../../../../../src/operators/Mappers/certificates/withStakeKeyRegistrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAItD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IACzB,YAAY,EAAE,iBAAiB,CAAC;CACjC;AAED,MAAM,WAAW,yBAAyB;IACxC,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;CAC/C;AAKD,eAAO,MAAM,yBAAyB,oTAerC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { Cardano } from '@cardano-sdk/core';
2
+ import { isNotNil } from '@cardano-sdk/util';
3
+ import { unifiedProjectorOperator } from '../../utils';
4
+ export const withStakeKeyRegistrations = unifiedProjectorOperator((evt) => ({
5
+ ...evt,
6
+ stakeKeyRegistrations: evt.certificates
7
+ .map(({ pointer, certificate }) => {
8
+ if (certificate.__typename === Cardano.CertificateType.StakeKeyRegistration) {
9
+ return {
10
+ pointer,
11
+ stakeKeyHash: certificate.stakeKeyHash
12
+ };
13
+ }
14
+ return null;
15
+ })
16
+ .filter(isNotNil)
17
+ }));
18
+ //# sourceMappingURL=withStakeKeyRegistrations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withStakeKeyRegistrations.js","sourceRoot":"","sources":["../../../../../src/operators/Mappers/certificates/withStakeKeyRegistrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAcvD,MAAM,CAAC,MAAM,yBAAyB,GAAG,wBAAwB,CAC/D,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACR,GAAG,GAAG;IACN,qBAAqB,EAAE,GAAG,CAAC,YAAY;SACpC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,EAA+B,EAAE;QAC7D,IAAI,WAAW,CAAC,UAAU,KAAK,OAAO,CAAC,eAAe,CAAC,oBAAoB,EAAE;YAC3E,OAAO;gBACL,OAAO;gBACP,YAAY,EAAE,WAAW,CAAC,YAAY;aACvC,CAAC;SACH;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;SACD,MAAM,CAAC,QAAQ,CAAC;CACpB,CAAC,CACH,CAAC"}
@@ -2,4 +2,8 @@ export * from './certificates';
2
2
  export * from './withUtxo';
3
3
  export * from './withMint';
4
4
  export * from './withHandles';
5
+ export * from './withHandleMetadata';
6
+ export * from './withNftMetadata';
7
+ export * from './withCIP67';
8
+ export * from './withAddresses';
5
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/operators/Mappers/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/operators/Mappers/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC"}
@@ -2,4 +2,8 @@ export * from './certificates';
2
2
  export * from './withUtxo';
3
3
  export * from './withMint';
4
4
  export * from './withHandles';
5
+ export * from './withHandleMetadata';
6
+ export * from './withNftMetadata';
7
+ export * from './withCIP67';
8
+ export * from './withAddresses';
5
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/operators/Mappers/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/operators/Mappers/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { Cardano, Handle } from '@cardano-sdk/core';
1
2
  export declare const computeCompactTxId: (blockHeight: number, txIndex: number) => number;
2
- export declare const logError: (error: unknown) => void;
3
+ export declare const assetNameToUTF8Handle: (assetName: Cardano.AssetName) => Handle;
3
4
  //# sourceMappingURL=util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/operators/Mappers/util.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,kBAAkB,gBAAiB,MAAM,WAAW,MAAM,WAAoC,CAAC;AAE5G,eAAO,MAAM,QAAQ,UAAW,OAAO,SAItC,CAAC"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/operators/Mappers/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAO3D,eAAO,MAAM,kBAAkB,gBAAiB,MAAM,WAAW,MAAM,WAAoC,CAAC;AAE5G,eAAO,MAAM,qBAAqB,cAAe,QAAQ,SAAS,KAAG,MAIpE,CAAC"}
@@ -1,8 +1,10 @@
1
- import { dummyLogger } from 'ts-log';
1
+ import { Asset, Cardano } from '@cardano-sdk/core';
2
+ import { InvalidStringError } from '@cardano-sdk/util';
2
3
  export const computeCompactTxId = (blockHeight, txIndex) => blockHeight * 100000 + txIndex;
3
- export const logError = (error) => {
4
- const logger = dummyLogger;
5
- const message = error instanceof Error ? error.message : `Internal error: ${error}`;
6
- logger.error(message);
4
+ export const assetNameToUTF8Handle = (assetName) => {
5
+ const handle = Cardano.AssetName.toUTF8(assetName);
6
+ if (!Asset.util.isValidHandle(handle))
7
+ throw new InvalidStringError(`Invalid handle ${handle}`);
8
+ return handle;
7
9
  };
8
10
  //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../src/operators/Mappers/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,WAAW,EAAE,MAAM,QAAQ,CAAC;AAM7C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,WAAmB,EAAE,OAAe,EAAE,EAAE,CAAC,WAAW,GAAG,MAAO,GAAG,OAAO,CAAC;AAE5G,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAE,EAAE;IACzC,MAAM,MAAM,GAAW,WAAW,CAAC;IACnC,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,KAAK,EAAE,CAAC;IACpF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC,CAAC"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../src/operators/Mappers/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAU,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAMvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,WAAmB,EAAE,OAAe,EAAE,EAAE,CAAC,WAAW,GAAG,MAAO,GAAG,OAAO,CAAC;AAE5G,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,SAA4B,EAAU,EAAE;IAC5E,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACnD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,kBAAkB,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAAC;IAChG,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { Cardano } from '@cardano-sdk/core';
2
+ import { Hash28ByteBase16 } from '@cardano-sdk/crypto';
3
+ import { WithUtxo } from './withUtxo';
4
+ export interface Address {
5
+ address: Cardano.PaymentAddress;
6
+ type: Cardano.AddressType;
7
+ paymentCredentialHash?: Hash28ByteBase16;
8
+ stakeCredential?: Hash28ByteBase16 | Cardano.Pointer;
9
+ }
10
+ export interface WithAddresses {
11
+ addresses: Address[];
12
+ }
13
+ export declare const withAddresses: <SourceExtraRollForwardPropsIn extends WithUtxo, SourceExtraRollBackwardPropsIn extends WithUtxo & import("../..").WithBlock>() => import("../..").ExtChainSyncOperator<SourceExtraRollForwardPropsIn, SourceExtraRollBackwardPropsIn, WithAddresses, WithAddresses>;
14
+ //# sourceMappingURL=withAddresses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withAddresses.d.ts","sourceRoot":"","sources":["../../../../src/operators/Mappers/withAddresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC;IAChC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC;IAI1B,qBAAqB,CAAC,EAAE,gBAAgB,CAAC;IAKzC,eAAe,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;CACtD;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,OAAO,EAAE,CAAC;CACtB;AAKD,eAAO,MAAM,aAAa,sQAuCvB,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { Cardano } from '@cardano-sdk/core';
2
+ import { unifiedProjectorOperator } from '../utils';
3
+ import uniq from 'lodash/uniq';
4
+ export const withAddresses = unifiedProjectorOperator((evt) => ({
5
+ ...evt,
6
+ addresses: uniq(evt.utxo.produced.map(([_, txOut]) => txOut.address)).map((address) => {
7
+ const parsed = Cardano.Address.fromString(address);
8
+ let paymentCredentialHash;
9
+ let stakeCredentialHash;
10
+ let pointer;
11
+ const type = parsed.getType();
12
+ switch (type) {
13
+ case Cardano.AddressType.BasePaymentKeyStakeKey:
14
+ case Cardano.AddressType.BasePaymentKeyStakeScript:
15
+ case Cardano.AddressType.BasePaymentScriptStakeKey:
16
+ case Cardano.AddressType.BasePaymentScriptStakeScript: {
17
+ const baseAddress = parsed.asBase();
18
+ paymentCredentialHash = baseAddress.getPaymentCredential().hash;
19
+ stakeCredentialHash = baseAddress.getStakeCredential().hash;
20
+ break;
21
+ }
22
+ case Cardano.AddressType.EnterpriseKey:
23
+ case Cardano.AddressType.EnterpriseScript: {
24
+ const enterpriseAddress = parsed.asEnterprise();
25
+ paymentCredentialHash = enterpriseAddress.getPaymentCredential().hash;
26
+ break;
27
+ }
28
+ case Cardano.AddressType.PointerKey:
29
+ case Cardano.AddressType.PointerScript: {
30
+ const pointerAddress = parsed.asPointer();
31
+ paymentCredentialHash = pointerAddress.getPaymentCredential().hash;
32
+ pointer = pointerAddress.getStakePointer();
33
+ break;
34
+ }
35
+ }
36
+ return {
37
+ address,
38
+ paymentCredentialHash,
39
+ stakeCredential: stakeCredentialHash || pointer,
40
+ type
41
+ };
42
+ })
43
+ }));
44
+ //# sourceMappingURL=withAddresses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withAddresses.js","sourceRoot":"","sources":["../../../../src/operators/Mappers/withAddresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,IAAI,MAAM,aAAa,CAAC;AAuB/B,MAAM,CAAC,MAAM,aAAa,GAAG,wBAAwB,CAA0B,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACvF,GAAG,GAAG;IACN,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAW,EAAE;QAC7F,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAE,CAAC;QACpD,IAAI,qBAAmD,CAAC;QACxD,IAAI,mBAAiD,CAAC;QACtD,IAAI,OAAoC,CAAC;QACzC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,QAAQ,IAAI,EAAE;YACZ,KAAK,OAAO,CAAC,WAAW,CAAC,sBAAsB,CAAC;YAChD,KAAK,OAAO,CAAC,WAAW,CAAC,yBAAyB,CAAC;YACnD,KAAK,OAAO,CAAC,WAAW,CAAC,yBAAyB,CAAC;YACnD,KAAK,OAAO,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC;gBACrD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAG,CAAC;gBACrC,qBAAqB,GAAG,WAAW,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC;gBAChE,mBAAmB,GAAG,WAAW,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC;gBAC5D,MAAM;aACP;YACD,KAAK,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC;YACvC,KAAK,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;gBACzC,MAAM,iBAAiB,GAAG,MAAM,CAAC,YAAY,EAAG,CAAC;gBACjD,qBAAqB,GAAG,iBAAiB,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC;gBACtE,MAAM;aACP;YACD,KAAK,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC;YACpC,KAAK,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;gBACtC,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,EAAG,CAAC;gBAC3C,qBAAqB,GAAG,cAAc,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC;gBACnE,OAAO,GAAG,cAAc,CAAC,eAAe,EAAE,CAAC;gBAC3C,MAAM;aACP;SACF;QACD,OAAO;YACL,OAAO;YACP,qBAAqB;YACrB,eAAe,EAAE,mBAAmB,IAAI,OAAO;YAC/C,IAAI;SACL,CAAC;IACJ,CAAC,CAAC;CACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { Asset, Cardano } from '@cardano-sdk/core';
2
+ import { ProducedUtxo, WithUtxo } from './withUtxo';
3
+ export interface CIP67Asset {
4
+ assetId: Cardano.AssetId;
5
+ policyId: Cardano.PolicyId;
6
+ assetName: Cardano.AssetName;
7
+ decoded: Asset.DecodedAssetName;
8
+ utxo: ProducedUtxo;
9
+ }
10
+ export interface CIP67Assets {
11
+ byLabel: Partial<Record<Asset.AssetNameLabel, CIP67Asset[]>>;
12
+ byAssetId: Partial<Record<Cardano.AssetId, CIP67Asset>>;
13
+ }
14
+ export interface WithCIP67 {
15
+ cip67: CIP67Assets;
16
+ }
17
+ export declare const withCIP67: <SourceExtraRollForwardPropsIn extends WithUtxo, SourceExtraRollBackwardPropsIn extends WithUtxo & import("../..").WithBlock>() => import("../..").ExtChainSyncOperator<SourceExtraRollForwardPropsIn, SourceExtraRollBackwardPropsIn, WithCIP67, WithCIP67>;
18
+ //# sourceMappingURL=withCIP67.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withCIP67.d.ts","sourceRoot":"","sources":["../../../../src/operators/Mappers/withCIP67.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAKpD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC;IAC7B,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC;IAChC,IAAI,EAAE,YAAY,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IAC7D,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,8PAwBpB,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { Asset, Cardano } from '@cardano-sdk/core';
2
+ import { isNotNil } from '@cardano-sdk/util';
3
+ import { unifiedProjectorOperator } from '../utils';
4
+ import groupBy from 'lodash/groupBy';
5
+ export const withCIP67 = unifiedProjectorOperator((evt) => {
6
+ const cip67Assets = evt.utxo.produced
7
+ .flatMap((utxo) => [...(utxo[1].value.assets?.keys() || [])].map((assetId) => {
8
+ const assetName = Cardano.AssetId.getAssetName(assetId);
9
+ const decoded = Asset.AssetNameLabel.decode(assetName);
10
+ if (!decoded)
11
+ return null;
12
+ return {
13
+ assetId,
14
+ assetName,
15
+ decoded,
16
+ policyId: Cardano.AssetId.getPolicyId(assetId),
17
+ utxo
18
+ };
19
+ }))
20
+ .filter(isNotNil);
21
+ return {
22
+ ...evt,
23
+ cip67: {
24
+ byAssetId: Object.fromEntries(cip67Assets.map((asset) => [asset.assetId, asset])),
25
+ byLabel: groupBy(cip67Assets, (e) => e.decoded.label)
26
+ }
27
+ };
28
+ });
29
+ //# sourceMappingURL=withCIP67.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withCIP67.js","sourceRoot":"","sources":["../../../../src/operators/Mappers/withCIP67.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,OAAO,MAAM,gBAAgB,CAAC;AAmBrC,MAAM,CAAC,MAAM,SAAS,GAAG,wBAAwB,CAAsB,CAAC,GAAG,EAAE,EAAE;IAC7E,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ;SAClC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAChB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAqB,EAAE;QAC3E,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,OAAO;YACL,OAAO;YACP,SAAS;YACT,OAAO;YACP,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;YAC9C,IAAI;SACL,CAAC;IACJ,CAAC,CAAC,CACH;SACA,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpB,OAAO;QACL,GAAG,GAAG;QACN,KAAK,EAAE;YACL,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YACjF,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;SACtD;KACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { Asset, Handle } from '@cardano-sdk/core';
2
+ import { WithCIP67 } from './withCIP67';
3
+ import { FilterByPolicyIds } from './types';
4
+ import { Logger } from 'ts-log';
5
+ import { ProducedUtxo } from './withUtxo';
6
+ import { WithNftMetadata } from './withNftMetadata';
7
+ import { ProjectionOperator } from '../../types';
8
+ interface PersonalizedProperties {
9
+ profilePicImage?: Asset.Uri;
10
+ backgroundImage?: Asset.Uri;
11
+ txOut?: ProducedUtxo;
12
+ }
13
+ export interface HandleMetadata extends PersonalizedProperties {
14
+ handle: Handle;
15
+ og?: boolean;
16
+ }
17
+ export interface WithHandleMetadata {
18
+ handleMetadata: HandleMetadata[];
19
+ }
20
+ export declare const withHandleMetadata: <PropsIn extends WithNftMetadata & WithCIP67>({ policyIds }: FilterByPolicyIds, logger: Logger) => ProjectionOperator<PropsIn, WithHandleMetadata>;
21
+ export {};
22
+ //# sourceMappingURL=withHandleMetadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withHandleMetadata.d.ts","sourceRoot":"","sources":["../../../../src/operators/Mappers/withHandleMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAW,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAe,SAAS,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAwB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAQjD,UAAU,sBAAsB;IAC9B,eAAe,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC;IAC5B,eAAe,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC;IAC5B,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAED,MAAM,WAAW,cAAe,SAAQ,sBAAsB;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,cAAc,EAAE,CAAC;CAClC;AA8DD,eAAO,MAAM,kBAAkB,+DAEZ,iBAAiB,UACxB,MAAM,oDAQb,CAAC"}
@@ -0,0 +1,58 @@
1
+ import { Asset, Cardano } from '@cardano-sdk/core';
2
+ import { assetNameToUTF8Handle } from './util';
3
+ import { isNotNil } from '@cardano-sdk/util';
4
+ import { map } from 'rxjs';
5
+ const isOgHandle = (metadata) => {
6
+ if (!metadata)
7
+ return false;
8
+ const core = metadata.otherProperties?.get('core');
9
+ if (core instanceof Map) {
10
+ return !!core.get('og');
11
+ }
12
+ return !!metadata.otherProperties?.get('og');
13
+ };
14
+ const toUri = (data, logger) => {
15
+ if (typeof data === 'string' && data.length > 0) {
16
+ try {
17
+ return Asset.Uri(data);
18
+ }
19
+ catch {
20
+ logger.warn('Invalid uri', data);
21
+ }
22
+ }
23
+ };
24
+ const getPersonalizedProperties = (extra, logger) => {
25
+ if (!extra)
26
+ return;
27
+ if (!Cardano.util.isPlutusMap(extra)) {
28
+ logger.warn('Cannot parse handle personalized properties: expected PlutusMap, got', extra);
29
+ return;
30
+ }
31
+ const asRecord = Cardano.util.tryConvertPlutusMapToUtf8Record(extra, logger);
32
+ return {
33
+ backgroundImage: toUri(asRecord.bg_image, logger),
34
+ profilePicImage: toUri(asRecord.pfp_image, logger)
35
+ };
36
+ };
37
+ const getHandleMetadata = (allNftMetadata, policyIds, cip67Assets, logger) => allNftMetadata
38
+ ?.filter(({ userTokenAssetId }) => policyIds.some((policyId) => userTokenAssetId.startsWith(policyId)))
39
+ .map(({ nftMetadata, userTokenAssetId, referenceTokenAssetId, extra }) => {
40
+ const cip67Asset = referenceTokenAssetId && cip67Assets.byAssetId[referenceTokenAssetId];
41
+ const handle = cip67Asset
42
+ ? assetNameToUTF8Handle(cip67Asset.decoded.content)
43
+ : assetNameToUTF8Handle(Cardano.AssetId.getAssetName(userTokenAssetId));
44
+ if (!handle)
45
+ return;
46
+ return {
47
+ handle,
48
+ og: isOgHandle(nftMetadata),
49
+ ...getPersonalizedProperties(extra, logger),
50
+ txOut: cip67Asset?.utxo
51
+ };
52
+ })
53
+ .filter(isNotNil);
54
+ export const withHandleMetadata = ({ policyIds }, logger) => (evt$) => evt$.pipe(map((evt) => ({
55
+ ...evt,
56
+ handleMetadata: getHandleMetadata(evt.nftMetadata, policyIds, evt.cip67, logger)
57
+ })));
58
+ //# sourceMappingURL=withHandleMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withHandleMetadata.js","sourceRoot":"","sources":["../../../../src/operators/Mappers/withHandleMetadata.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,17 @@
1
- import { Cardano } from '@cardano-sdk/core';
1
+ import { Cardano, Handle } from '@cardano-sdk/core';
2
+ import { WithCIP67 } from './withCIP67';
2
3
  import { FilterByPolicyIds } from './types';
4
+ import { Logger } from 'ts-log';
3
5
  import { ProjectionOperator } from '../../types';
4
- export interface Handle {
5
- handle: string;
6
+ export interface HandleOwnership {
7
+ handle: Handle;
6
8
  latestOwnerAddress: Cardano.PaymentAddress | null;
7
9
  assetId: Cardano.AssetId;
8
10
  policyId: Cardano.PolicyId;
9
- datum?: Cardano.Datum;
11
+ datum?: Cardano.PlutusData;
10
12
  }
11
13
  export interface WithHandles {
12
- handles: Handle[];
14
+ handles: HandleOwnership[];
13
15
  }
14
- export declare const withHandles: <PropsIn>({ policyIds }: FilterByPolicyIds) => ProjectionOperator<PropsIn, WithHandles>;
16
+ export declare const withHandles: <PropsIn extends WithCIP67>({ policyIds }: FilterByPolicyIds, logger: Logger) => ProjectionOperator<PropsIn, WithHandles>;
15
17
  //# sourceMappingURL=withHandles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"withHandles.d.ts","sourceRoot":"","sources":["../../../../src/operators/Mappers/withHandles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAIjD,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC;IAQf,kBAAkB,EAAE,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAClD,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAiED,eAAO,MAAM,WAAW,2BACG,iBAAiB,6CAiBvC,CAAC"}
1
+ {"version":3,"file":"withHandles.d.ts","sourceRoot":"","sources":["../../../../src/operators/Mappers/withHandles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAA2B,SAAS,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAIjD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IAQf,kBAAkB,EAAE,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAClD,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AA8ED,eAAO,MAAM,WAAW,6CAEL,iBAAiB,UACxB,MAAM,6CAkBb,CAAC"}
@@ -1,71 +1,69 @@
1
1
  import { Asset, Cardano } from '@cardano-sdk/core';
2
- import { CustomError } from 'ts-custom-error';
3
- import { logError } from './util';
2
+ import { assetNameToUTF8Handle } from './util';
4
3
  import { map } from 'rxjs';
5
- const handleFromAssetId = (assetId) => Buffer.from(Cardano.AssetId.getAssetName(assetId), 'hex').toString('utf8');
6
- class HandleParsingError extends CustomError {
7
- constructor(handle, message = 'Invalid handle') {
8
- super(`${message}: ${handle}`);
4
+ const assetIdToUTF8Handle = (assetId, cip67Asset) => {
5
+ if (cip67Asset) {
6
+ if (cip67Asset.decoded.label === Asset.AssetNameLabelNum.UserNFT) {
7
+ return Cardano.AssetName.toUTF8(cip67Asset.decoded.content);
8
+ }
9
+ return null;
10
+ }
11
+ return assetNameToUTF8Handle(Cardano.AssetId.getAssetName(assetId));
12
+ };
13
+ const tryCreateHandleOwnership = (assetId, policyIds, cip67Assets, logger, txOut) => {
14
+ const policyId = Cardano.AssetId.getPolicyId(assetId);
15
+ if (!policyIds.includes(policyId))
16
+ return;
17
+ try {
18
+ const cip67Asset = cip67Assets.byAssetId[assetId];
19
+ const handle = assetIdToUTF8Handle(assetId, cip67Asset);
20
+ if (handle) {
21
+ return {
22
+ assetId,
23
+ datum: txOut?.datum,
24
+ handle,
25
+ latestOwnerAddress: txOut?.address || null,
26
+ policyId
27
+ };
28
+ }
29
+ }
30
+ catch (error) {
31
+ logger.error(error);
9
32
  }
10
- }
11
- const mapHandleToData = (assetId, data) => {
12
- const handle = handleFromAssetId(assetId);
13
- if (!Asset.util.isValidHandle(handle))
14
- throw new HandleParsingError(handle);
15
- const { datum, address, policyId } = data;
16
- return {
17
- assetId,
18
- datum,
19
- handle,
20
- latestOwnerAddress: address || null,
21
- policyId
22
- };
23
33
  };
24
- const getOutputHandles = (outputs, policyIds) => {
34
+ const getOutputHandles = (outputs, policyIds, cip67Assets, logger) => {
25
35
  const handles = {};
26
- for (const { address, value, datum } of outputs) {
27
- if (!value.assets)
36
+ for (const txOut of outputs) {
37
+ if (!txOut.value.assets)
28
38
  continue;
29
- for (const [assetId] of value.assets.entries()) {
30
- const policyId = Cardano.AssetId.getPolicyId(assetId);
31
- if (!policyIds.includes(policyId))
32
- continue;
33
- try {
34
- const handleData = mapHandleToData(assetId, { address, datum, policyId });
39
+ for (const [assetId] of txOut.value.assets.entries()) {
40
+ const handleData = tryCreateHandleOwnership(assetId, policyIds, cip67Assets, logger, txOut);
41
+ if (handleData) {
35
42
  handles[handleData.handle] = handleData;
36
43
  }
37
- catch (error) {
38
- logError(error);
39
- }
40
44
  }
41
45
  }
42
46
  return handles;
43
47
  };
44
- const getBurnedHandles = (mint, policyIds) => {
48
+ const getBurnedHandles = (mint, policyIds, cip67Assets, logger) => {
45
49
  if (!mint)
46
50
  return;
47
51
  const handles = {};
48
52
  for (const [assetId, quantity] of mint.entries()) {
49
53
  if (quantity < 0n) {
50
- const policyId = Cardano.AssetId.getPolicyId(assetId);
51
- if (!policyIds.includes(policyId))
52
- continue;
53
- try {
54
- const handleData = mapHandleToData(assetId, { policyId });
54
+ const handleData = tryCreateHandleOwnership(assetId, policyIds, cip67Assets, logger);
55
+ if (handleData) {
55
56
  handles[handleData.handle] = handleData;
56
57
  }
57
- catch (error) {
58
- logError(error);
59
- }
60
58
  }
61
59
  }
62
60
  return handles;
63
61
  };
64
- export const withHandles = ({ policyIds }) => (evt$) => evt$.pipe(map((evt) => {
62
+ export const withHandles = ({ policyIds }, logger) => (evt$) => evt$.pipe(map((evt) => {
65
63
  const handleMap = evt.block.body.reduce((handles, { body: { outputs, mint } }) => ({
66
64
  ...handles,
67
- ...getOutputHandles(outputs, policyIds),
68
- ...getBurnedHandles(mint, policyIds)
65
+ ...getOutputHandles(outputs, policyIds, evt.cip67, logger),
66
+ ...getBurnedHandles(mint, policyIds, evt.cip67, logger)
69
67
  }), {});
70
68
  return {
71
69
  ...evt,
@@ -1 +1 @@
1
- {"version":3,"file":"withHandles.js","sourceRoot":"","sources":["../../../../src/operators/Mappers/withHandles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAI9C,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAqB3B,MAAM,iBAAiB,GAAG,CAAC,OAAwB,EAAE,EAAE,CACrD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAE7E,MAAM,kBAAmB,SAAQ,WAAW;IAC1C,YAAmB,MAAc,EAAE,OAAO,GAAG,gBAAgB;QAC3D,KAAK,CAAC,GAAG,OAAO,KAAK,MAAM,EAAE,CAAC,CAAC;IACjC,CAAC;CACF;AAED,MAAM,eAAe,GAAG,CACtB,OAAwB,EACxB,IAAmG,EACnG,EAAE;IACF,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC5E,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAE1C,OAAO;QACL,OAAO;QACP,KAAK;QACL,MAAM;QACN,kBAAkB,EAAE,OAAO,IAAI,IAAI;QACnC,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,OAAwB,EAAE,SAAyC,EAAE,EAAE;IAC/F,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,KAAK,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,OAAO,EAAE;QAC/C,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,SAAS;QAC5B,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE;YAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACtD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,SAAS;YAC5C,IAAI;gBACF,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC1E,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC;aACzC;YAAC,OAAO,KAAc,EAAE;gBACvB,QAAQ,CAAC,KAAK,CAAC,CAAC;aACjB;SACF;KACF;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,IAAkC,EAAE,SAAyC,EAAE,EAAE;IACzG,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;QAEhD,IAAI,QAAQ,GAAG,EAAE,EAAE;YACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACtD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,SAAS;YAC5C,IAAI;gBACF,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC1D,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC;aACzC;YAAC,OAAO,KAAc,EAAE;gBACvB,QAAQ,CAAC,KAAK,CAAC,CAAC;aACjB;SACF;KACF;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GACtB,CAAU,EAAE,SAAS,EAAqB,EAA4C,EAAE,CACxF,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,IAAI,CACP,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;IACV,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CACrC,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACzC,GAAG,OAAO;QACV,GAAG,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC;QACvC,GAAG,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC;KACrC,CAAC,EACF,EAA4B,CAC7B,CAAC;IACF,OAAO;QACL,GAAG,GAAG;QACN,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;KACvC,CAAC;AACJ,CAAC,CAAC,CACH,CAAC"}
1
+ {"version":3,"file":"withHandles.js","sourceRoot":"","sources":["../../../../src/operators/Mappers/withHandles.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,10 @@ import { ProjectionOperator } from '../../types';
4
4
  export interface Mint {
5
5
  assetId: Cardano.AssetId;
6
6
  policyId: Cardano.PolicyId;
7
+ assetName: Cardano.AssetName;
7
8
  quantity: bigint;
8
9
  compactTxId: number;
10
+ txMetadata?: Cardano.TxMetadata;
9
11
  }
10
12
  export interface WithMint {
11
13
  mint: Mint[];
@@ -1 +1 @@
1
- {"version":3,"file":"withMint.d.ts","sourceRoot":"","sources":["../../../../src/operators/Mappers/withMint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAKjD,MAAM,WAAW,IAAI;IACnB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,IAAI,EAAE,CAAC;CACd;AAED,eAAO,MAAM,QAAQ,uPAYlB,CAAC;AAEJ,eAAO,MAAM,qBAAqB,4CACU,iBAAiB,oCAOxD,CAAC"}
1
+ {"version":3,"file":"withMint.d.ts","sourceRoot":"","sources":["../../../../src/operators/Mappers/withMint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAKjD,MAAM,WAAW,IAAI;IACnB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC;CACjC;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,IAAI,EAAE,CAAC;CACd;AAED,eAAO,MAAM,QAAQ,uPAclB,CAAC;AAEJ,eAAO,MAAM,qBAAqB,4CACU,iBAAiB,oCAOxD,CAAC"}
@@ -4,11 +4,13 @@ import { map } from 'rxjs';
4
4
  import { unifiedProjectorOperator } from '../utils';
5
5
  export const withMint = unifiedProjectorOperator((evt) => ({
6
6
  ...evt,
7
- mint: evt.block.body.flatMap(({ body: { mint } }, txIndex) => [...(mint?.entries() || [])].map(([assetId, quantity]) => ({
7
+ mint: evt.block.body.flatMap(({ body: { mint }, auxiliaryData }, txIndex) => [...(mint?.entries() || [])].map(([assetId, quantity]) => ({
8
8
  assetId,
9
+ assetName: Cardano.AssetId.getAssetName(assetId),
9
10
  compactTxId: computeCompactTxId(evt.block.header.blockNo, txIndex),
10
11
  policyId: Cardano.AssetId.getPolicyId(assetId),
11
- quantity
12
+ quantity,
13
+ txMetadata: auxiliaryData?.blob
12
14
  })))
13
15
  }));
14
16
  export const filterMintByPolicyIds = ({ policyIds }) => (evt$) => evt$.pipe(map((evt) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"withMint.js","sourceRoot":"","sources":["../../../../src/operators/Mappers/withMint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAC3B,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAapD,MAAM,CAAC,MAAM,QAAQ,GAAG,wBAAwB,CAAe,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACvE,GAAG,GAAG;IACN,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,CAC3D,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAC9B,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAQ,EAAE,CAAC,CAAC;QAC9B,OAAO;QACP,WAAW,EAAE,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;QAClE,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;QAC9C,QAAQ;KACT,CAAC,CACH,CACF;CACF,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,qBAAqB,GAChC,CAA2B,EAAE,SAAS,EAAqB,EAA+B,EAAE,CAC5F,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,IAAI,CACP,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACZ,GAAG,GAAG;IACN,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;CACtE,CAAC,CAAC,CACJ,CAAC"}
1
+ {"version":3,"file":"withMint.js","sourceRoot":"","sources":["../../../../src/operators/Mappers/withMint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAC3B,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAepD,MAAM,CAAC,MAAM,QAAQ,GAAG,wBAAwB,CAAe,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACvE,GAAG,GAAG;IACN,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,EAAE,CAC1E,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAC9B,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAQ,EAAE,CAAC,CAAC;QAC9B,OAAO;QACP,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC;QAChD,WAAW,EAAE,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;QAClE,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;QAC9C,QAAQ;QACR,UAAU,EAAE,aAAa,EAAE,IAAI;KAChC,CAAC,CACH,CACF;CACF,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,qBAAqB,GAChC,CAA2B,EAAE,SAAS,EAAqB,EAA+B,EAAE,CAC5F,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,IAAI,CACP,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACZ,GAAG,GAAG;IACN,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;CACtE,CAAC,CAAC,CACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { Asset, Cardano } from '@cardano-sdk/core';
2
+ import { ProjectionOperator } from '../../types';
3
+ import { WithCIP67 } from './withCIP67';
4
+ import { WithLogger } from '@cardano-sdk/util';
5
+ import { WithMint } from './withMint';
6
+ import { WithUtxo } from './withUtxo';
7
+ export interface ProjectedNftMetadata {
8
+ userTokenAssetId: Cardano.AssetId;
9
+ nftMetadata: Asset.NftMetadata;
10
+ referenceTokenAssetId?: Cardano.AssetId;
11
+ extra?: Cardano.PlutusData;
12
+ }
13
+ export interface WithNftMetadata {
14
+ nftMetadata: ProjectedNftMetadata[];
15
+ }
16
+ export declare const withNftMetadata: <PropsIn extends WithMint & WithUtxo & WithCIP67>({ logger }: WithLogger) => ProjectionOperator<PropsIn, WithNftMetadata>;
17
+ //# sourceMappingURL=withNftMetadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withNftMetadata.d.ts","sourceRoot":"","sources":["../../../../src/operators/Mappers/withNftMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAY,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,OAAO,CAAC,OAAO,CAAC;IAClC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC;IAI/B,qBAAqB,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC;IAIxC,KAAK,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,oBAAoB,EAAE,CAAC;CACrC;AA8BD,eAAO,MAAM,eAAe,gEAGvB,UAAU,iDAUV,CAAC"}