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
7 changes: 5 additions & 2 deletions packages/cli/bin/protokit-cli.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import path from "path";
import { fileURLToPath } from "url";
import { createRequire } from "module";
import fs from "fs";
import process from "process";

const require = createRequire(import.meta.url);
const __filename = fileURLToPath(import.meta.url);
Expand Down Expand Up @@ -33,6 +32,9 @@ const args = process.argv.slice(2);
if (!process.env.TS_NODE_LOADER_ACTIVE) {
const env = { ...process.env };
env.TS_NODE_LOADER_ACTIVE = "1";
env.TS_NODE_TRANSPILE_ONLY = "true";
env.TS_NODE_SKIP_PROJECT = "false";
env.TS_NODE_PREFER_TS_EXTS = "true";

// Configure ts-node for proper ESM/CJS interop
env.TS_NODE_ESMODULEINTEROP = "true";
Expand All @@ -47,7 +49,8 @@ if (!process.env.TS_NODE_LOADER_ACTIVE) {
target: "ES2020",
experimentalDecorators: true,
emitDecoratorMetadata: true,
strictNullChecks: true,
strictNullChecks: false,
noEmit: true,
});

const tsNodeEsm = resolveTsNodeEsm();
Expand Down
47 changes: 24 additions & 23 deletions packages/cli/src/scripts/bridge/deposit.ts
Original file line number Diff line number Diff line change
@@ -1,27 +1,6 @@
/* eslint-disable no-console */
/* eslint-disable func-names */

import {
BridgingModule,
MinaTransactionSender,
Sequencer,
SettlementModule,
AppChain,
} from "@proto-kit/sequencer";
import { Runtime } from "@proto-kit/module";
import { DispatchSmartContract, Protocol } from "@proto-kit/protocol";
import { DefaultConfigs, DefaultModules } from "@proto-kit/stack";
import {
AccountUpdate,
fetchAccount,
Field,
Mina,
PrivateKey,
Provable,
PublicKey,
UInt64,
} from "o1js";
import { FungibleToken } from "mina-fungible-token";
import { DispatchSmartContract } from "@proto-kit/protocol";

import {
loadEnvironmentVariables,
Expand All @@ -46,8 +25,30 @@ export default async function (
"Bridge deposit arguments required: tokenId, fromKey, toKey, amount"
);
}

loadEnvironmentVariables(options);

const {
BridgingModule,
MinaTransactionSender,
Sequencer,
SettlementModule,
AppChain,
} = await import("@proto-kit/sequencer");
const { Runtime } = await import("@proto-kit/module");
const { Protocol } = await import("@proto-kit/protocol");
const { DefaultConfigs, DefaultModules } = await import("@proto-kit/stack");
const {
AccountUpdate,
fetchAccount,
Field,
Mina,
PrivateKey,
Provable,
PublicKey,
UInt64,
} = await import("o1js");
const { FungibleToken } = await import("mina-fungible-token");

const { runtime, protocol } = await loadUserModules();
const tokenId = Field(bridgeArgs.tokenId);
const fromPrivateKey = PrivateKey.fromBase58(
Expand Down
43 changes: 21 additions & 22 deletions packages/cli/src/scripts/bridge/redeem.ts
Original file line number Diff line number Diff line change
@@ -1,26 +1,5 @@
/* eslint-disable no-console */
/* eslint-disable func-names */
import {
BridgingModule,
MinaTransactionSender,
Sequencer,
SettlementModule,
AppChain,
} from "@proto-kit/sequencer";
import { Runtime } from "@proto-kit/module";
import { Protocol } from "@proto-kit/protocol";
import {
AccountUpdate,
fetchAccount,
Field,
Mina,
PrivateKey,
Provable,
UInt64,
} from "o1js";
import { FungibleToken } from "mina-fungible-token";
import { DefaultConfigs, DefaultModules } from "@proto-kit/stack";

import {
loadEnvironmentVariables,
getRequiredEnv,
Expand All @@ -41,8 +20,28 @@ export default async function (
if (!bridgeArgs) {
throw new Error("Bridge redeem arguments required: tokenId, toKey, amount");
}

loadEnvironmentVariables(options);

const {
BridgingModule,
MinaTransactionSender,
Sequencer,
SettlementModule,
AppChain,
} = await import("@proto-kit/sequencer");
const { Runtime } = await import("@proto-kit/module");
const { Protocol } = await import("@proto-kit/protocol");
const {
AccountUpdate,
fetchAccount,
Field,
Mina,
PrivateKey,
Provable,
UInt64,
} = await import("o1js");
const { FungibleToken } = await import("mina-fungible-token");
const { DefaultConfigs, DefaultModules } = await import("@proto-kit/stack");
const { runtime, protocol } = await loadUserModules();
const tokenId = Field(bridgeArgs.tokenId);
const toPrivateKey = PrivateKey.fromBase58(
Expand Down
14 changes: 7 additions & 7 deletions packages/cli/src/scripts/bridge/withdraw.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,5 @@
/* eslint-disable no-console */
/* eslint-disable func-names */
import { ClientAppChain, InMemorySigner } from "@proto-kit/sdk";
import { Field, PrivateKey, Provable } from "o1js";
import { UInt64 } from "@proto-kit/library";
import { Runtime } from "@proto-kit/module";
import { Protocol } from "@proto-kit/protocol";

import { loadEnvironmentVariables, LoadEnvOptions } from "../../utils/loadEnv";
import { loadUserModules } from "../../utils/loadUserModules";

Expand All @@ -24,8 +18,14 @@ export default async function (
"Bridge withdraw arguments required: tokenId, senderKey, amount"
);
}

loadEnvironmentVariables(options);

const { ClientAppChain, InMemorySigner } = await import("@proto-kit/sdk");
const { Field, PrivateKey, Provable } = await import("o1js");
const { UInt64 } = await import("@proto-kit/library");
const { Runtime } = await import("@proto-kit/module");
const { Protocol } = await import("@proto-kit/protocol");

const { runtime, protocol } = await loadUserModules();
const tokenId = Field(bridgeArgs.tokenId);
const amount = UInt64.from(bridgeArgs.amount * 1e9);
Expand Down
40 changes: 17 additions & 23 deletions packages/cli/src/scripts/graphqlDocs/generateGqlDocs.ts
Original file line number Diff line number Diff line change
@@ -1,27 +1,4 @@
/* eslint-disable no-console */
import {
BlockStorageNetworkStateModule,
InMemoryTransactionSender,
StateServiceQueryModule,
} from "@proto-kit/sdk";
import { Protocol } from "@proto-kit/protocol";
import {
AppChain,
Sequencer,
VanillaTaskWorkerModules,
} from "@proto-kit/sequencer";
import {
InMemorySequencerModules,
VanillaProtocolModules,
VanillaRuntimeModules,
} from "@proto-kit/library";
import {
GraphqlSequencerModule,
GraphqlServer,
VanillaGraphqlModules,
} from "@proto-kit/api";
import { Runtime } from "@proto-kit/module";

import { generateGqlDocs } from "../../utils/graphqlDocs";

export default async function (args: {
Expand All @@ -30,6 +7,23 @@ export default async function (args: {
url: string;
}) {
if (args.empty) {
const {
BlockStorageNetworkStateModule,
InMemoryTransactionSender,
StateServiceQueryModule,
} = await import("@proto-kit/sdk");
const { Protocol } = await import("@proto-kit/protocol");
const { AppChain, Sequencer, VanillaTaskWorkerModules } = await import(
"@proto-kit/sequencer"
);
const {
InMemorySequencerModules,
VanillaProtocolModules,
VanillaRuntimeModules,
} = await import("@proto-kit/library");
const { GraphqlSequencerModule, GraphqlServer, VanillaGraphqlModules } =
await import("@proto-kit/api");
const { Runtime } = await import("@proto-kit/module");
const { port } = args;
console.log(`Starting AppChain on port ${port}...`);

Expand Down
10 changes: 2 additions & 8 deletions packages/cli/src/scripts/lightnet/faucet.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,11 @@
/* eslint-disable func-names */
import {
AccountUpdate,
fetchAccount,
Lightnet,
Mina,
Provable,
PublicKey,
} from "o1js";

import "reflect-metadata";
import { getRequiredEnv } from "../../utils/loadEnv";

export default async function (publicKey: string) {
const { AccountUpdate, fetchAccount, Lightnet, Mina, Provable, PublicKey } =
await import("o1js");
// configuration
const fee = 0.1 * 1e9;
const fundingAmount = 1000 * 1e9;
Expand Down
12 changes: 7 additions & 5 deletions packages/cli/src/scripts/lightnet/lightnetInitialize.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,16 @@ import {
getRequiredEnv,
loadEnvironmentVariables,
} from "../../utils/loadEnv";
import settlementDeployScript from "../settlement/deploy";

import lightnetWaitForNetworkScript from "./wait-for-network";
import lightnetFaucetScript from "./faucet";

export default async function (options: LoadEnvOptions) {
loadEnvironmentVariables(options);

const { default: lightnetWaitForNetworkScript } = await import(
"./wait-for-network"
);
const { default: lightnetFaucetScript } = await import("./faucet");
const { default: settlementDeployScript } = await import(
"../settlement/deploy"
);
console.log("Step 1: Waiting for network to be ready...");
await lightnetWaitForNetworkScript(options);

Expand Down
13 changes: 6 additions & 7 deletions packages/cli/src/scripts/lightnet/wait-for-network.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
/* eslint-disable no-console */
/* eslint-disable func-names */
import { sleep } from "@proto-kit/common";
import { fetchLastBlock, Provable } from "o1js";

import {
loadEnvironmentVariables,
getRequiredEnv,
LoadEnvOptions,
} from "../../utils/loadEnv";
import { LoadEnvOptions } from "../../utils/loadEnv";

const maxAttempts = 24;
const delay = 5000;

export default async function (options: LoadEnvOptions) {
const { loadEnvironmentVariables, getRequiredEnv } = await import(
"../../utils/loadEnv"
);
const { sleep } = await import("@proto-kit/common");
const { fetchLastBlock, Provable } = await import("o1js");
loadEnvironmentVariables(options);
const graphqlEndpoint = `${getRequiredEnv("MINA_NODE_GRAPHQL_HOST")}:${getRequiredEnv("MINA_NODE_GRAPHQL_PORT")}/graphql`;
let lastBlock;
Expand Down
56 changes: 30 additions & 26 deletions packages/cli/src/scripts/settlement/deploy-token.ts
Original file line number Diff line number Diff line change
@@ -1,32 +1,8 @@
/* eslint-disable no-console */
/* eslint-disable func-names */
import { Runtime } from "@proto-kit/module";
import { DispatchSmartContract, Protocol } from "@proto-kit/protocol";
import {
ArchiveNode,
MinaTransactionSender,
ProvenSettlementPermissions,
Sequencer,
SettlementModule,
SignedSettlementPermissions,
AppChain,
BridgingModule,
} from "@proto-kit/sequencer";
import {
AccountUpdate,
Bool,
fetchAccount,
Mina,
PrivateKey,
Provable,
PublicKey,
UInt64,
UInt8,
} from "o1js";
import { DispatchSmartContract } from "@proto-kit/protocol";
import "reflect-metadata";
import { container } from "tsyringe";
import { FungibleToken, FungibleTokenAdmin } from "mina-fungible-token";
import { DefaultConfigs, DefaultModules } from "@proto-kit/stack";

import { loadEnvironmentVariables, LoadEnvOptions } from "../../utils/loadEnv";
import { loadUserModules } from "../../utils/loadUserModules";
Expand All @@ -47,8 +23,36 @@ export default async function (
"Token deployment arguments required: tokenSymbol, feepayerKey, receiverPublicKey, [mintAmount]"
);
}

loadEnvironmentVariables(options);

const { Runtime } = await import("@proto-kit/module");
const { Protocol } = await import("@proto-kit/protocol");
const {
ArchiveNode,
MinaTransactionSender,
ProvenSettlementPermissions,
Sequencer,
SettlementModule,
SignedSettlementPermissions,
AppChain,
BridgingModule,
} = await import("@proto-kit/sequencer");
const {
AccountUpdate,
Bool,
fetchAccount,
Mina,
PrivateKey,
Provable,
PublicKey,
UInt64,
UInt8,
} = await import("o1js");
const { FungibleToken, FungibleTokenAdmin } = await import(
"mina-fungible-token"
);
const { DefaultConfigs, DefaultModules } = await import("@proto-kit/stack");

const { runtime, protocol } = await loadUserModules();
const appChain = AppChain.from({
Runtime: Runtime.from(runtime.modules),
Expand Down
16 changes: 6 additions & 10 deletions packages/cli/src/scripts/settlement/deploy.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,8 @@
/* eslint-disable no-console */
/* eslint-disable func-names */

import { Runtime } from "@proto-kit/module";
import { Protocol } from "@proto-kit/protocol";
import {
InMemoryDatabase,
Sequencer,
SettlementModule,
AppChain,
} from "@proto-kit/sequencer";
import { Provable, PublicKey } from "o1js";
import "reflect-metadata";
import { container } from "tsyringe";
import { DefaultConfigs, DefaultModules } from "@proto-kit/stack";

import {
loadEnvironmentVariables,
Expand All @@ -22,6 +12,12 @@ import {
import { loadUserModules } from "../../utils/loadUserModules";

export default async function (options: LoadEnvOptions) {
const { Provable, PublicKey } = await import("o1js");
const { Runtime } = await import("@proto-kit/module");
const { Protocol } = await import("@proto-kit/protocol");
const { AppChain, Sequencer, SettlementModule, InMemoryDatabase } =
await import("@proto-kit/sequencer");
const { DefaultModules, DefaultConfigs } = await import("@proto-kit/stack");
loadEnvironmentVariables(options);
const { runtime, protocol } = await loadUserModules();
const appChain = AppChain.from({
Expand Down
Loading