Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/typescript-plutus/api/lbf/build.nix
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ _:
{
perSystem = { config, ... }:
let
tsFlake =
lbf-plutus-sample-project-typescript =
config.lbf-nix.lbfPlutusTypescript {
name = "lbf-plutus-sample-project";
src = ./.;
Expand All @@ -11,7 +11,7 @@ _:
in
{
packages = {
inherit (tsFlake.packages) lbf-plutus-sample-project-typescript lbf-plutus-sample-project-typescript-tgz;
inherit lbf-plutus-sample-project-typescript;
};
};
}
2 changes: 1 addition & 1 deletion docs/typescript-plutus/build.nix
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
src = ./.;

npmExtraDependencies = [
config.packages.lbf-plutus-sample-project-typescript-tgz
config.packages.lbf-plutus-sample-project-typescript
];

devShellTools = config.settings.shell.tools;
Expand Down
4 changes: 2 additions & 2 deletions docs/typescript-prelude/api/lbf/build.nix
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ _:
{
perSystem = { config, ... }:
let
tsFlake =
lbf-prelude-sample-project-typescript =
config.lbf-nix.lbfPreludeTypescript {
name = "lbf-prelude-sample-project";
src = ./.;
Expand All @@ -11,7 +11,7 @@ _:
in
{
packages = {
inherit (tsFlake.packages) lbf-prelude-sample-project-typescript lbf-prelude-sample-project-typescript-tgz;
inherit lbf-prelude-sample-project-typescript;
};
};
}
2 changes: 1 addition & 1 deletion docs/typescript-prelude/build.nix
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
name = "prelude-sample-project";
src = ./.;
npmExtraDependencies = [
config.packages.lbf-prelude-sample-project-typescript-tgz
config.packages.lbf-prelude-sample-project-typescript
];

devShellTools = config.settings.shell.tools;
Expand Down
2 changes: 1 addition & 1 deletion extras/lbf-nix/lbf-typescript.nix
Original file line number Diff line number Diff line change
Expand Up @@ -276,4 +276,4 @@ let
});
});
in
lbTypescriptFlake
lbTypescriptFlake.packages."${name}-typescript-tgz"
2 changes: 2 additions & 0 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -88,10 +88,12 @@
./testsuites/lbt-prelude/lbt-prelude-haskell/build.nix
./testsuites/lbt-prelude/lbt-prelude-purescript/build.nix
./testsuites/lbt-prelude/lbt-prelude-rust/build.nix
./testsuites/lbt-prelude/lbt-prelude-typescript/build.nix
./testsuites/lbt-plutus/api/build.nix
./testsuites/lbt-plutus/golden/build.nix
./testsuites/lbt-plutus/lbt-plutus-haskell/build.nix
./testsuites/lbt-plutus/lbt-plutus-purescript/build.nix
./testsuites/lbt-plutus/lbt-plutus-typescript/build.nix
./testsuites/lbt-plutus/lbt-plutus-plutarch/build.nix
./testsuites/lbt-plutus/lbt-plutus-rust/build.nix
./experimental/build.nix
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -450,8 +450,8 @@ printCtorE ((_, tyN), (ctorN, _)) prodVals = do
[ lbrace
, indent 2 $
vsep
[ "name" <+> colon <+> pretty '\'' <> ctorNDoc <> pretty '\'' <> comma
, "fields" <+> colon <+> singleDoc
[ "fields" <+> colon <+> singleDoc <> comma
, "name" <+> colon <+> pretty '\'' <> ctorNDoc <> pretty '\''
]
, rbrace
]
Expand All @@ -461,8 +461,8 @@ printCtorE ((_, tyN), (ctorN, _)) prodVals = do
[ lbrace
, indent 2 $
vsep
[ "name" <+> colon <+> pretty '\'' <> ctorNDoc <> pretty '\'' <> comma
, "fields" <+> colon <+> encloseSep lbracket rbracket comma prodDocs
[ "fields" <+> colon <+> encloseSep lbracket rbracket comma prodDocs <> comma
, "name" <+> colon <+> pretty '\'' <> ctorNDoc <> pretty '\''
]
, rbrace
]
Expand Down
8 changes: 4 additions & 4 deletions libs/build.nix
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
configs = [ "${config.packages.codegen-configs}/purescript-prelude-base.json" ];
};

lbf-prelude-typescript = (config.lbf-nix.lbfTypescript {
lbf-prelude-typescript = config.lbf-nix.lbfTypescript {
name = "lbf-prelude";
src = ./lbf-prelude;
files = [ "Prelude.lbf" ];
Expand All @@ -38,7 +38,7 @@
[
config.packages.lbr-prelude-typescript-tgz
];
}).packages.lbf-prelude-typescript-tgz;
};

lbf-prelude-plutarch = config.lbf-nix.lbfPlutarch' {
name = "lbf-prelude-plutarch";
Expand Down Expand Up @@ -108,7 +108,7 @@
];
};

lbf-plutus-typescript = (config.lbf-nix.lbfTypescript {
lbf-plutus-typescript = config.lbf-nix.lbfTypescript {
name = "lbf-plutus";
src = ./lbf-plutus;
files = [ "Plutus/V1.lbf" "Plutus/V2.lbf" ];
Expand All @@ -123,7 +123,7 @@
config.packages.lbf-prelude-typescript
config.packages.lbr-plutus-typescript-tgz
];
}).packages.lbf-plutus-typescript-tgz;
};

lbf-plutus-rust = config.lbf-nix.lbfRust {
name = "lbf-plutus";
Expand Down
12 changes: 6 additions & 6 deletions runtimes/typescript/lbr-plutus/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -54,3 +54,5 @@ export interface IsPlutusDataInstances {
dictA: PlutusLedgerApiPlutusData.IsPlutusData<A>,
) => PlutusLedgerApiPlutusData.IsPlutusData<Prelude.List<A>>;
}
IsPlutusData[LbrPrelude.List] =
PlutusLedgerApiPreludeInstances.isPlutusDataList;
56 changes: 56 additions & 0 deletions runtimes/typescript/lbr-plutus/src/LambdaBuffers/V1/Instances.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import * as PlutusData from "../PlutusData.js";
import * as PlutusLedgerApiPlutusData from "plutus-ledger-api/PlutusData.js";
import * as PlutusLedgerApiAssocMap from "plutus-ledger-api/AssocMap.js";
import * as PlutusLedgerApiV1 from "plutus-ledger-api/V1.js";
import * as LbrPrelude from "lbr-prelude";
import * as Prelude from "prelude";
Expand Down Expand Up @@ -247,6 +248,29 @@ declare module "../PlutusData.js" {
PlutusData.IsPlutusData[Symbols.UpperBound] =
PlutusLedgerApiV1.isPlutusDataUpperBound;

// Closure
declare module "lbr-prelude" {
export interface EqInstances {
[Symbols.Closure]: Prelude.Eq<PlutusLedgerApiV1.Closure>;
}

export interface JsonInstances {
[Symbols.Closure]: Prelude.Json<PlutusLedgerApiV1.Closure>;
}
}

LbrPrelude.Eq[Symbols.Closure] = Prelude.eqBool;
LbrPrelude.Json[Symbols.Closure] = Prelude.jsonBool;

declare module "../PlutusData.js" {
export interface IsPlutusDataInstances {
[Symbols.Closure]: PlutusLedgerApiPlutusData.IsPlutusData<
PlutusLedgerApiV1.Closure
>;
}
}
PlutusData.IsPlutusData[Symbols.Closure] = PlutusLedgerApiV1.isPlutusDataBool;

// Redeemer
declare module "lbr-prelude" {
export interface EqInstances {
Expand Down Expand Up @@ -579,3 +603,35 @@ declare module "../PlutusData.js" {
}
PlutusData.IsPlutusData[Symbols.PlutusData] =
PlutusLedgerApiPlutusData.isPlutusDataPlutusData;

// Map
declare module "lbr-prelude" {
export interface EqInstances {
[Symbols.Map]: <K, V>(
dictK: Prelude.Eq<K>,
dictV: Prelude.Eq<V>,
) => Prelude.Eq<PlutusLedgerApiAssocMap.Map<K, V>>;
}

export interface JsonInstances {
[Symbols.Map]: <K, V>(
dictK: Prelude.Json<K>,
dictV: Prelude.Json<V>,
) => Prelude.Json<PlutusLedgerApiAssocMap.Map<K, V>>;
}
}

LbrPrelude.Eq[Symbols.Map] = PlutusLedgerApiAssocMap.eqMap;
LbrPrelude.Json[Symbols.Map] = PlutusLedgerApiAssocMap.jsonMap;

declare module "../PlutusData.js" {
export interface IsPlutusDataInstances {
[Symbols.Map]: <K, V>(
dictK: PlutusLedgerApiPlutusData.IsPlutusData<K>,
dictV: PlutusLedgerApiPlutusData.IsPlutusData<V>,
) => PlutusLedgerApiPlutusData.IsPlutusData<
PlutusLedgerApiAssocMap.Map<K, V>
>;
}
}
PlutusData.IsPlutusData[Symbols.Map] = PlutusLedgerApiAssocMap.isPlutusDataMap;
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ export const Interval: unique symbol = Symbol("Interval");
export const Extended: unique symbol = Symbol("Extended");
export const LowerBound: unique symbol = Symbol("LowerBound");
export const UpperBound: unique symbol = Symbol("UpperBound");
export const Closure: unique symbol = Symbol("Closure");
export const Redeemer: unique symbol = Symbol("Redeemer");
export const Datum: unique symbol = Symbol("Datum");
export const DatumHash: unique symbol = Symbol("DatumHash");
Expand All @@ -36,6 +37,7 @@ export type Interval<A> = PlutusLedgerApiV1.Interval<A>;
export type Extended<A> = PlutusLedgerApiV1.Extended<A>;
export type LowerBound<A> = PlutusLedgerApiV1.LowerBound<A>;
export type UpperBound<A> = PlutusLedgerApiV1.UpperBound<A>;
export type Closure = PlutusLedgerApiV1.Closure;
export type Redeemer = PlutusLedgerApiV1.Redeemer;
export type Datum = PlutusLedgerApiV1.Datum;
export type DatumHash = PlutusLedgerApiV1.DatumHash;
Expand Down
4 changes: 2 additions & 2 deletions runtimes/typescript/lbr-prelude/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions testsuites/lbt-plutus/api/build.nix
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,12 @@ _: {
files = [ "Foo.lbf" "Foo/Bar.lbf" "Days.lbf" ];
};

lbf-plutus-golden-api-typescript = config.lbf-nix.lbfPlutusTypescript {
name = "lbf-plutus-golden-api";
src = ./.;
files = [ "Foo.lbf" "Foo/Bar.lbf" "Days.lbf" ];
};

};
};
}
Expand Down
27 changes: 15 additions & 12 deletions testsuites/lbt-plutus/golden/build.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,17 @@
_:
{
perSystem = { pkgs, config, ... }:
let
goldenData = pkgs.stdenv.mkDerivation {
name = "lbt-plutus-golden-data";
src = ./.;
# Disable the Fixup phase since it needs to (potentially) write to the
# files in `./.` which are readonly in the nix store
dontFixup = true;
installPhase = ''ln -s "$src" "$out"'';
};

in
{
packages = {
lbt-plutus-golden-haskell = config.lbf-nix.haskellData {
Expand All @@ -9,19 +20,11 @@ _:
cabalPackageName = "lbt-plutus-golden-data";
};

lbt-plutus-golden-purescript = pkgs.stdenv.mkDerivation {
name = "lbt-plutus-golden-data";
src = ./.;
phases = "installPhase";
installPhase = "ln -s $src $out";
};
lbt-plutus-golden-purescript = goldenData;

lbt-plutus-golden-rust = pkgs.stdenv.mkDerivation {
name = "lbt-plutus-golden-data";
src = ./.;
phases = "installPhase";
installPhase = "ln -s $src $out";
};
lbt-plutus-golden-rust = goldenData;

lbt-plutus-golden-typescript = goldenData;
};

};
Expand Down
4 changes: 4 additions & 0 deletions testsuites/lbt-plutus/lbt-plutus-typescript/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Ignore the autogenerated files from flake-lang.nix
.extra-dependencies
data
node_modules
28 changes: 28 additions & 0 deletions testsuites/lbt-plutus/lbt-plutus-typescript/build.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{ inputs, ... }:
{
perSystem = { config, system, ... }:
let
tsFlake =
inputs.flake-lang.lib.${system}.typescriptFlake {
name = "lbt-plutus";
src = ./.;
npmExtraDependencies = [
config.packages.lbf-plutus-golden-api-typescript
];

devShellTools = config.settings.shell.tools;
devShellHook = config.settings.shell.hook;

data =
[
{
name = "lbt-plutus-golden-data";
path = config.packages.lbt-plutus-golden-typescript;
}
];
};
in
{
inherit (tsFlake) devShells checks;
};
}
Loading