@cardano-sdk/tx-construction 0.18.0 → 0.18.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.
@@ -0,0 +1,5 @@
1
+ import * as Crypto from '@cardano-sdk/crypto';
2
+ import { Cardano } from '@cardano-sdk/core';
3
+ import { Hash32ByteBase16 } from '@cardano-sdk/crypto';
4
+ export declare const computeScriptDataHash: (costModels: Cardano.CostModels, usedLanguages: Cardano.PlutusLanguageVersion[], redeemers?: Cardano.Redeemer[], datums?: Cardano.PlutusData[]) => Crypto.Hash32ByteBase16 | undefined;
5
+ //# sourceMappingURL=computeScriptDataHash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computeScriptDataHash.d.ts","sourceRoot":"","sources":["../../src/computeScriptDataHash.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAiB,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AA8FvD,eAAO,MAAM,qBAAqB,kDAEjB,QAAQ,qBAAqB,EAAE,cAClC,QAAQ,QAAQ,EAAE,WACrB,QAAQ,UAAU,EAAE,KAC5B,uBAAuB,GAAG,SAkB5B,CAAC"}
@@ -0,0 +1,44 @@
1
+ import * as Crypto from '@cardano-sdk/crypto';
2
+ import { Serialization } from '@cardano-sdk/core';
3
+ import { Hash32ByteBase16 } from '@cardano-sdk/crypto';
4
+ import { HexBlob } from '@cardano-sdk/util';
5
+ const CBOR_EMPTY_LIST = new Uint8Array([0x80]);
6
+ const CBOR_EMPTY_MAP = new Uint8Array([0xa0]);
7
+ const getCborEncodedArray = (items) => {
8
+ const writer = new Serialization.CborWriter();
9
+ writer.writeStartArray(items.length);
10
+ for (const item of items) {
11
+ writer.writeEncodedValue(Buffer.from(item.toCbor(), 'hex'));
12
+ }
13
+ return writer.encode();
14
+ };
15
+ const hashScriptData = (costModels, redemeers, datums) => {
16
+ const writer = new Serialization.CborWriter();
17
+ if (datums && datums.length > 0 && (!redemeers || redemeers.length === 0)) {
18
+ writer.writeEncodedValue(CBOR_EMPTY_LIST);
19
+ writer.writeEncodedValue(getCborEncodedArray(datums));
20
+ writer.writeEncodedValue(CBOR_EMPTY_MAP);
21
+ }
22
+ else {
23
+ if (!redemeers || redemeers.length === 0)
24
+ return undefined;
25
+ writer.writeEncodedValue(getCborEncodedArray(redemeers));
26
+ if (datums && datums.length > 0)
27
+ writer.writeEncodedValue(getCborEncodedArray(datums));
28
+ writer.writeEncodedValue(Buffer.from(costModels.languageViewsEncoding(), 'hex'));
29
+ }
30
+ return Hash32ByteBase16.fromHexBlob(HexBlob.fromBytes(Crypto.blake2b(Crypto.blake2b.BYTES).update(writer.encode()).digest()));
31
+ };
32
+ export const computeScriptDataHash = (costModels, usedLanguages, redeemers, datums) => {
33
+ if ((!redeemers || redeemers.length === 0) && (!datums || datums.length === 0))
34
+ return undefined;
35
+ const requiredCostModels = new Serialization.Costmdls();
36
+ for (const language of usedLanguages) {
37
+ const costModel = costModels.get(language);
38
+ if (costModel) {
39
+ requiredCostModels.insert(new Serialization.CostModel(language, costModel));
40
+ }
41
+ }
42
+ return hashScriptData(requiredCostModels, redeemers?.map((r) => Serialization.Redeemer.fromCore(r)), datums?.map((d) => Serialization.PlutusData.fromCore(d)));
43
+ };
44
+ //# sourceMappingURL=computeScriptDataHash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computeScriptDataHash.js","sourceRoot":"","sources":["../../src/computeScriptDataHash.ts"],"names":[],"mappings":"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"}
@@ -5,4 +5,5 @@ export * from './output-validation';
5
5
  export * from './tx-builder';
6
6
  export * from './ensureValidityInterval';
7
7
  export * from './types';
8
+ export * from './computeScriptDataHash';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAClG,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAClG,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC;AACxB,cAAc,yBAAyB,CAAC"}
package/dist/esm/index.js CHANGED
@@ -5,4 +5,5 @@ export * from './output-validation';
5
5
  export * from './tx-builder';
6
6
  export * from './ensureValidityInterval';
7
7
  export * from './types';
8
+ export * from './computeScriptDataHash';
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAClG,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAClG,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC;AACxB,cAAc,yBAAyB,CAAC"}