From 2e1eb2e9def418edf5e047e150348b36bc9b3f93 Mon Sep 17 00:00:00 2001 From: Michele Nuzzi Date: Wed, 17 Jul 2024 14:33:32 +0200 Subject: [PATCH] dev5 --- package-lock.json | 44 ++++++++++++------- package.json | 9 ++-- packages/offchain/package-lock.json | 24 +++++++--- packages/offchain/package.json | 5 ++- packages/onchain/package-lock.json | 23 +++++++--- packages/onchain/package.json | 4 +- .../onchain/src/IR/IRNodes/IRNative/index.ts | 4 +- .../src/pluts/Script/Parametrized/index.ts | 13 +++--- src/index.ts | 2 + 9 files changed, 82 insertions(+), 46 deletions(-) diff --git a/package-lock.json b/package-lock.json index b993495e..98f5e3ca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,24 +1,25 @@ { "name": "@harmoniclabs/plu-ts", - "version": "0.8.0-dev4", + "version": "0.8.0-dev5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@harmoniclabs/plu-ts", - "version": "0.8.0-dev4", + "version": "0.8.0-dev5", "license": "Apache-2.0", "dependencies": { "@harmoniclabs/bigint-utils": "^1.0.0", + "@harmoniclabs/bip32_ed25519": "^0.1.2", "@harmoniclabs/bytestring": "^1.0.0", "@harmoniclabs/cardano-costmodels-ts": "^1.1.0", - "@harmoniclabs/cardano-ledger-ts": "^0.2.1", + "@harmoniclabs/cardano-ledger-ts": "^0.2.2", "@harmoniclabs/cbor": "^1.3.0", "@harmoniclabs/crypto": "^0.2.4", "@harmoniclabs/obj-utils": "^1.0.0", "@harmoniclabs/pair": "^1.0.0", - "@harmoniclabs/plu-ts-offchain": "0.1.13-dev5", - "@harmoniclabs/plu-ts-onchain": "^0.3.0-dev4", + "@harmoniclabs/plu-ts-offchain": "0.1.13-dev6", + "@harmoniclabs/plu-ts-onchain": "^0.3.0-dev5", "@harmoniclabs/plutus-data": "^1.2.4", "@harmoniclabs/plutus-machine": "^2.0.0-dev3", "@harmoniclabs/uint8array-utils": "^1.0.0", @@ -1821,6 +1822,15 @@ "resolved": "https://registry.npmjs.org/@harmoniclabs/biguint/-/biguint-1.0.0.tgz", "integrity": "sha512-5DyCIBDL4W+7ffR1IJSbGrCG4xEYxAlFH5gCNF42qtyL5ltwZ92Ae1MyXpHM2TUPy7ocSTqlLUsOdy+SvqVVPw==" }, + "node_modules/@harmoniclabs/bip32_ed25519": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@harmoniclabs/bip32_ed25519/-/bip32_ed25519-0.1.2.tgz", + "integrity": "sha512-RuujeTInmTZVcjBLAXi+LvT6F+6w16ANyZ9qZDl2xCDTKzavD3UcHt2ITte2Q3Nd3i9viN7PeaTRKDYgWh/I1w==", + "dependencies": { + "@harmoniclabs/crypto": "^0.2.4", + "@harmoniclabs/uint8array-utils": "^1.0.0" + } + }, "node_modules/@harmoniclabs/bitstream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@harmoniclabs/bitstream/-/bitstream-1.0.0.tgz", @@ -1850,9 +1860,9 @@ } }, "node_modules/@harmoniclabs/cardano-ledger-ts": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@harmoniclabs/cardano-ledger-ts/-/cardano-ledger-ts-0.2.1.tgz", - "integrity": "sha512-27jzl1zehtKIQkYTHCM9EZ5azqdfEaK+uklloUhm+G1B94LWKqumM/C5ak+BpMVL30rLwsrPjGeGr8Jhx1HhlQ==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@harmoniclabs/cardano-ledger-ts/-/cardano-ledger-ts-0.2.2.tgz", + "integrity": "sha512-2BTo9NGxVo5XjOZVaGAuoeSeDMpbQikQwbV6UwG0xhv1NfCoRiiT8NrZiTkx7d0m1U46vThUKgwyRfzVuAY0pg==", "dependencies": { "@harmoniclabs/bigint-utils": "^1.0.0", "@harmoniclabs/crypto": "^0.2.4", @@ -1863,6 +1873,7 @@ "url": "https://github.com/sponsors/HarmonicLabs" }, "peerDependencies": { + "@harmoniclabs/bip32_ed25519": "^0.1.2", "@harmoniclabs/bytestring": "^1.0.0", "@harmoniclabs/cardano-costmodels-ts": "^1.1.0", "@harmoniclabs/cbor": "^1.2.0", @@ -1904,9 +1915,9 @@ "integrity": "sha512-D9OBowsUsy1LctHxWzd9AngTzoo5x3rBiJ0gu579t41Q23pb+VNx1euEfluUEiaYbgljcl1lb/4D1fFTZd1tRQ==" }, "node_modules/@harmoniclabs/plu-ts-offchain": { - "version": "0.1.13-dev5", - "resolved": "https://registry.npmjs.org/@harmoniclabs/plu-ts-offchain/-/plu-ts-offchain-0.1.13-dev5.tgz", - "integrity": "sha512-kPefxvVRJUnHi+ScFf1mCdz4jX2/zCeQjbDpsWwzx4m8oYaF9tjOfSjYzljPQVwAsiADiol86DSbXmOGTmYkWw==", + "version": "0.1.13-dev6", + "resolved": "https://registry.npmjs.org/@harmoniclabs/plu-ts-offchain/-/plu-ts-offchain-0.1.13-dev6.tgz", + "integrity": "sha512-dRqQnR2R3CUobhyQbDce58LpRaEVbSykWdkkwUpAmVCzDmoVf+W4T5iHJ4kzuZopYFaPyeqd+MtfgaOAkuaNHw==", "dependencies": { "@harmoniclabs/bigint-utils": "^1.0.0", "@harmoniclabs/crypto": "^0.2.4", @@ -1917,9 +1928,10 @@ "url": "https://github.com/sponsors/HarmonicLabs" }, "peerDependencies": { + "@harmoniclabs/bip32_ed25519": "^0.1.2", "@harmoniclabs/bytestring": "^1.0.0", "@harmoniclabs/cardano-costmodels-ts": "^1.1.0", - "@harmoniclabs/cardano-ledger-ts": "^0.2.1", + "@harmoniclabs/cardano-ledger-ts": "^0.2.2", "@harmoniclabs/cbor": "^1.3.0", "@harmoniclabs/pair": "^1.0.0", "@harmoniclabs/plutus-data": "^1.2.4", @@ -1928,9 +1940,9 @@ } }, "node_modules/@harmoniclabs/plu-ts-onchain": { - "version": "0.3.0-dev4", - "resolved": "https://registry.npmjs.org/@harmoniclabs/plu-ts-onchain/-/plu-ts-onchain-0.3.0-dev4.tgz", - "integrity": "sha512-TzoijVt//09NEsv8Qio6WdZsU97OAS8xfynrjhjhk6fl1mE7Qs6XRnoyE+T11J9E9AyIIrZunMyObJe1+sOEVA==", + "version": "0.3.0-dev5", + "resolved": "https://registry.npmjs.org/@harmoniclabs/plu-ts-onchain/-/plu-ts-onchain-0.3.0-dev5.tgz", + "integrity": "sha512-0NH6dzOr7SzJrN5sPZtQXvcD8Zg4L7RKxmmjcPTs4O2wM6FA7pxaG/gDrANpWlKuibjjUXDCatz3kP6oNxz7lQ==", "dependencies": { "@harmoniclabs/bigint-utils": "^1.0.0", "@harmoniclabs/crypto": "^0.2.4", @@ -1943,7 +1955,7 @@ "peerDependencies": { "@harmoniclabs/bytestring": "^1.0.0", "@harmoniclabs/cardano-costmodels-ts": "^1.1.0", - "@harmoniclabs/cardano-ledger-ts": "^0.2.1", + "@harmoniclabs/cardano-ledger-ts": "^0.2.2", "@harmoniclabs/cbor": "^1.3.0", "@harmoniclabs/pair": "^1.0.0", "@harmoniclabs/plutus-data": "^1.2.4", diff --git a/package.json b/package.json index 35dabe06..4baca784 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@harmoniclabs/plu-ts", - "version": "0.8.0-dev4", + "version": "0.8.0-dev5", "description": "An embedded DSL for Cardano smart contracts creation coupled with a library for Cardano transactions, all in Typescript", "main": "./dist/index.js", "types": "./dist/index.d.ts", @@ -78,9 +78,10 @@ "@harmoniclabs/cardano-costmodels-ts": "^1.1.0", "@harmoniclabs/plutus-machine": "^2.0.0-dev3", "@harmoniclabs/uplc": "^1.2.3", - "@harmoniclabs/cardano-ledger-ts": "^0.2.1", - "@harmoniclabs/plu-ts-offchain": "0.1.13-dev5", - "@harmoniclabs/plu-ts-onchain": "^0.3.0-dev4" + "@harmoniclabs/cardano-ledger-ts": "^0.2.2", + "@harmoniclabs/bip32_ed25519": "^0.1.2", + "@harmoniclabs/plu-ts-offchain": "0.1.13-dev6", + "@harmoniclabs/plu-ts-onchain": "^0.3.0-dev5" }, "devDependencies": { "@babel/preset-env": "^7.18.6", diff --git a/packages/offchain/package-lock.json b/packages/offchain/package-lock.json index c8e5df68..458bba0a 100644 --- a/packages/offchain/package-lock.json +++ b/packages/offchain/package-lock.json @@ -1,12 +1,12 @@ { "name": "@harmoniclabs/plu-ts-offchain", - "version": "0.1.13-dev5", + "version": "0.1.13-dev6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@harmoniclabs/plu-ts-offchain", - "version": "0.1.13-dev5", + "version": "0.1.13-dev6", "license": "Apache-2.0", "dependencies": { "@harmoniclabs/bigint-utils": "^1.0.0", @@ -30,9 +30,10 @@ "url": "https://github.com/sponsors/HarmonicLabs" }, "peerDependencies": { + "@harmoniclabs/bip32_ed25519": "^0.1.2", "@harmoniclabs/bytestring": "^1.0.0", "@harmoniclabs/cardano-costmodels-ts": "^1.1.0", - "@harmoniclabs/cardano-ledger-ts": "^0.2.1", + "@harmoniclabs/cardano-ledger-ts": "^0.2.2", "@harmoniclabs/cbor": "^1.3.0", "@harmoniclabs/pair": "^1.0.0", "@harmoniclabs/plutus-data": "^1.2.4", @@ -1823,6 +1824,16 @@ "integrity": "sha512-5DyCIBDL4W+7ffR1IJSbGrCG4xEYxAlFH5gCNF42qtyL5ltwZ92Ae1MyXpHM2TUPy7ocSTqlLUsOdy+SvqVVPw==", "peer": true }, + "node_modules/@harmoniclabs/bip32_ed25519": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@harmoniclabs/bip32_ed25519/-/bip32_ed25519-0.1.2.tgz", + "integrity": "sha512-RuujeTInmTZVcjBLAXi+LvT6F+6w16ANyZ9qZDl2xCDTKzavD3UcHt2ITte2Q3Nd3i9viN7PeaTRKDYgWh/I1w==", + "peer": true, + "dependencies": { + "@harmoniclabs/crypto": "^0.2.4", + "@harmoniclabs/uint8array-utils": "^1.0.0" + } + }, "node_modules/@harmoniclabs/bitstream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@harmoniclabs/bitstream/-/bitstream-1.0.0.tgz", @@ -1854,9 +1865,9 @@ } }, "node_modules/@harmoniclabs/cardano-ledger-ts": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@harmoniclabs/cardano-ledger-ts/-/cardano-ledger-ts-0.2.1.tgz", - "integrity": "sha512-27jzl1zehtKIQkYTHCM9EZ5azqdfEaK+uklloUhm+G1B94LWKqumM/C5ak+BpMVL30rLwsrPjGeGr8Jhx1HhlQ==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@harmoniclabs/cardano-ledger-ts/-/cardano-ledger-ts-0.2.2.tgz", + "integrity": "sha512-2BTo9NGxVo5XjOZVaGAuoeSeDMpbQikQwbV6UwG0xhv1NfCoRiiT8NrZiTkx7d0m1U46vThUKgwyRfzVuAY0pg==", "peer": true, "dependencies": { "@harmoniclabs/bigint-utils": "^1.0.0", @@ -1868,6 +1879,7 @@ "url": "https://github.com/sponsors/HarmonicLabs" }, "peerDependencies": { + "@harmoniclabs/bip32_ed25519": "^0.1.2", "@harmoniclabs/bytestring": "^1.0.0", "@harmoniclabs/cardano-costmodels-ts": "^1.1.0", "@harmoniclabs/cbor": "^1.2.0", diff --git a/packages/offchain/package.json b/packages/offchain/package.json index b5dd947d..e6cac734 100644 --- a/packages/offchain/package.json +++ b/packages/offchain/package.json @@ -1,6 +1,6 @@ { "name": "@harmoniclabs/plu-ts-offchain", - "version": "0.1.13-dev5", + "version": "0.1.13-dev6", "description": "An embedded DSL for Cardano smart contracts creation coupled with a library for Cardano transactions, all in Typescript", "main": "./dist/index.js", "types": "./dist/index.d.ts", @@ -66,7 +66,8 @@ "@harmoniclabs/cardano-costmodels-ts": "^1.1.0", "@harmoniclabs/plutus-machine": "^2.0.0-dev3", "@harmoniclabs/uplc": "^1.2.3", - "@harmoniclabs/cardano-ledger-ts": "^0.2.1" + "@harmoniclabs/bip32_ed25519": "^0.1.2", + "@harmoniclabs/cardano-ledger-ts": "^0.2.2" }, "devDependencies": { "@babel/preset-env": "^7.18.6", diff --git a/packages/onchain/package-lock.json b/packages/onchain/package-lock.json index 94a301c5..a7324e35 100644 --- a/packages/onchain/package-lock.json +++ b/packages/onchain/package-lock.json @@ -1,12 +1,12 @@ { "name": "@harmoniclabs/plu-ts-onchain", - "version": "0.3.0-dev4", + "version": "0.3.0-dev5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@harmoniclabs/plu-ts-onchain", - "version": "0.3.0-dev4", + "version": "0.3.0-dev5", "license": "Apache-2.0", "dependencies": { "@harmoniclabs/bigint-utils": "^1.0.0", @@ -31,7 +31,7 @@ "peerDependencies": { "@harmoniclabs/bytestring": "^1.0.0", "@harmoniclabs/cardano-costmodels-ts": "^1.1.0", - "@harmoniclabs/cardano-ledger-ts": "^0.2.1", + "@harmoniclabs/cardano-ledger-ts": "^0.2.2", "@harmoniclabs/cbor": "^1.3.0", "@harmoniclabs/pair": "^1.0.0", "@harmoniclabs/plutus-data": "^1.2.4", @@ -1822,6 +1822,16 @@ "integrity": "sha512-5DyCIBDL4W+7ffR1IJSbGrCG4xEYxAlFH5gCNF42qtyL5ltwZ92Ae1MyXpHM2TUPy7ocSTqlLUsOdy+SvqVVPw==", "peer": true }, + "node_modules/@harmoniclabs/bip32_ed25519": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@harmoniclabs/bip32_ed25519/-/bip32_ed25519-0.1.2.tgz", + "integrity": "sha512-RuujeTInmTZVcjBLAXi+LvT6F+6w16ANyZ9qZDl2xCDTKzavD3UcHt2ITte2Q3Nd3i9viN7PeaTRKDYgWh/I1w==", + "peer": true, + "dependencies": { + "@harmoniclabs/crypto": "^0.2.4", + "@harmoniclabs/uint8array-utils": "^1.0.0" + } + }, "node_modules/@harmoniclabs/bitstream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@harmoniclabs/bitstream/-/bitstream-1.0.0.tgz", @@ -1853,9 +1863,9 @@ } }, "node_modules/@harmoniclabs/cardano-ledger-ts": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@harmoniclabs/cardano-ledger-ts/-/cardano-ledger-ts-0.2.1.tgz", - "integrity": "sha512-27jzl1zehtKIQkYTHCM9EZ5azqdfEaK+uklloUhm+G1B94LWKqumM/C5ak+BpMVL30rLwsrPjGeGr8Jhx1HhlQ==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@harmoniclabs/cardano-ledger-ts/-/cardano-ledger-ts-0.2.2.tgz", + "integrity": "sha512-2BTo9NGxVo5XjOZVaGAuoeSeDMpbQikQwbV6UwG0xhv1NfCoRiiT8NrZiTkx7d0m1U46vThUKgwyRfzVuAY0pg==", "peer": true, "dependencies": { "@harmoniclabs/bigint-utils": "^1.0.0", @@ -1867,6 +1877,7 @@ "url": "https://github.com/sponsors/HarmonicLabs" }, "peerDependencies": { + "@harmoniclabs/bip32_ed25519": "^0.1.2", "@harmoniclabs/bytestring": "^1.0.0", "@harmoniclabs/cardano-costmodels-ts": "^1.1.0", "@harmoniclabs/cbor": "^1.2.0", diff --git a/packages/onchain/package.json b/packages/onchain/package.json index 65072d9b..a00a3ea6 100644 --- a/packages/onchain/package.json +++ b/packages/onchain/package.json @@ -1,6 +1,6 @@ { "name": "@harmoniclabs/plu-ts-onchain", - "version": "0.3.0-dev4", + "version": "0.3.0-dev5", "description": "An embedded DSL for Cardano smart contracts creation coupled with a library for Cardano transactions, all in Typescript", "main": "./dist/index.js", "types": "./dist/index.d.ts", @@ -68,7 +68,7 @@ "@harmoniclabs/cardano-costmodels-ts": "^1.1.0", "@harmoniclabs/plutus-machine": "^2.0.0-dev3", "@harmoniclabs/uplc": "^1.2.4", - "@harmoniclabs/cardano-ledger-ts": "^0.2.1" + "@harmoniclabs/cardano-ledger-ts": "^0.2.2" }, "devDependencies": { "@babel/preset-env": "^7.18.6", diff --git a/packages/onchain/src/IR/IRNodes/IRNative/index.ts b/packages/onchain/src/IR/IRNodes/IRNative/index.ts index 41e2e766..c7d0dfd8 100644 --- a/packages/onchain/src/IR/IRNodes/IRNative/index.ts +++ b/packages/onchain/src/IR/IRNodes/IRNative/index.ts @@ -1,17 +1,15 @@ -import { ToJson } from "@harmoniclabs/cardano-ledger-ts/dist/utils/ToJson"; import { Cloneable } from "@harmoniclabs/cbor/dist/utils/Cloneable"; import { blake2b_128 } from "@harmoniclabs/crypto"; -import { IRTerm } from "../../IRTerm"; import { IHash } from "../../interfaces/IHash"; import { IIRParent } from "../../interfaces/IIRParent"; import { concatUint8Arr } from "../../utils/concatUint8Arr"; -import { isIRTerm } from "../../utils/isIRTerm"; import { positiveBigIntAsBytes } from "../../utils/positiveIntAsBytes"; import { IRNativeTag, nativeTagToString } from "./IRNativeTag"; import UPLCFlatUtils from "../../../utils/UPLCFlatUtils"; import { IRParentTerm, isIRParentTerm } from "../../utils/isIRParentTerm"; import { _modifyChildFromTo } from "../../toUPLC/_internal/_modifyChildFromTo"; import { BaseIRMetadata } from "../BaseIRMetadata"; +import { ToJson } from "../../../utils/ToJson"; /** * we might not need all the hashes diff --git a/packages/onchain/src/pluts/Script/Parametrized/index.ts b/packages/onchain/src/pluts/Script/Parametrized/index.ts index 8d932138..8c2799ff 100644 --- a/packages/onchain/src/pluts/Script/Parametrized/index.ts +++ b/packages/onchain/src/pluts/Script/Parametrized/index.ts @@ -9,7 +9,6 @@ import { ptoData } from "../../lib/std/data/conversion"; import { cloneTermType } from "../../type_system/cloneTermType"; import { fromHex, toHex } from "@harmoniclabs/uint8array-utils"; import { isObject } from "@harmoniclabs/obj-utils"; -import { Hash28 } from "@harmoniclabs/cardano-ledger-ts"; import { blake2b_224 } from "@harmoniclabs/crypto"; import { PlutusScriptType } from "../../../utils/PlutusScriptType"; import { Cbor, CborBytes } from "@harmoniclabs/cbor"; @@ -28,7 +27,7 @@ export class Precompiled readonly precompiled!: Uint8Array; - readonly hash!: Hash28; + readonly hash!: Uint8Array; constructor( purpose: Purp, @@ -57,10 +56,10 @@ export class Precompiled const validatorType = fn( validatorArgs as any, [ outT ]); - let _hash: Hash28 | undefined = undefined; - const _getHash = (): Hash28 => { - if( !( _hash instanceof Hash28 ) ) - _hash = new Hash28( + let _hash: Uint8Array | undefined = undefined; + const _getHash = (): Uint8Array => { + if( !( _hash instanceof Uint8Array ) ) + _hash = new Uint8Array( blake2b_224( new Uint8Array([ pulutsVersion === "PlutusScriptV2" ? 0x02 : 0x01, @@ -71,7 +70,7 @@ export class Precompiled ) ); - return _hash.clone(); + return Uint8Array.prototype.slice.call( _hash ); }; Object.defineProperties( this, { diff --git a/src/index.ts b/src/index.ts index d1d58c3f..d191717b 100644 --- a/src/index.ts +++ b/src/index.ts @@ -10,6 +10,8 @@ export * from "@harmoniclabs/cardano-costmodels-ts"; export * from "@harmoniclabs/plutus-machine"; +export * from "@harmoniclabs/bip32_ed25519"; + export * from "@harmoniclabs/cardano-ledger-ts"; export * from "@harmoniclabs/plu-ts-offchain";