Select Git revision
BeatSphere.tscn
Forked from
IVMI / Ivmi-Builder
Source project has a limited visibility.
-
Florent Berthaut authoredFlorent Berthaut authored
deploy.ts 2.49 KiB
import { InMemorySigner } from "@taquito/signer";
import { TezosToolkit } from "@taquito/taquito";
import chalk from "chalk";
import { Spinner } from "cli-spinner";
import dotenv from "dotenv";
import multisig from "../compiled/Multisig.json";
dotenv.config();
const rpcUrl = process.env.RPC_URL;
const pk = process.env.PK;
const missingEnvVarLog = (name: string) =>
console.log(
chalk.redBright`Missing ` +
chalk.red.bold.underline(name) +
chalk.redBright` env var. Please add it in ` +
chalk.red.bold.underline(`deploy/.env`)
);
const makeSpinnerOperation = async <T>(
operation: Promise<T>,
{
loadingMessage,
endMessage,
}: {
loadingMessage: string;
endMessage: string;
}
): Promise<T> => {
const spinner = new Spinner(loadingMessage);
spinner.start();
const result = await operation;
spinner.stop();
console.log("");
console.log(endMessage);
return result;
};
if (!pk && !rpcUrl) {
console.log(
chalk.redBright`Couldn't find env variables. Have you renamed ` +
chalk.red.bold.underline`deploy/.env.dist` +
chalk.redBright` to ` +
chalk.red.bold.underline(`deploy/.env`)
);
process.exit(-1);
}
if (!pk) {
missingEnvVarLog("PK");
process.exit(-1);
}
if (!rpcUrl) {
missingEnvVarLog("RPC_URL");
process.exit(-1);
}
const Tezos = new TezosToolkit(rpcUrl);
const signer = new InMemorySigner(pk);
Tezos.setProvider({ signer: signer });
async function deploy() {
const storage = {
name: "DAO",
description: "Dao description",
token_address: "KT1LnPY3excYVUTLBuCfBbf1hLeGJTLhXNSz",
admin_address: "tz1fd4mdbyg2VnB29pMnt4PwkQWoPzxoWzAk",
proposal_map: {},
};
try {
const origination = await makeSpinnerOperation(
Tezos.contract.originate({
code: multisig,
storage: storage,
}),
{
loadingMessage: chalk.yellowBright`Deploying contract`,
endMessage: chalk.green`Contract deployed!`,
}
);
await makeSpinnerOperation(origination.contract(), {
loadingMessage:
chalk.yellowBright`Waiting for contract to be confirmed at: ` +
chalk.yellow.bold(origination.contractAddress),
endMessage: chalk.green`Contract confirmed!`,
});
console.log(
chalk.green`\nContract address: \n- ` +
chalk.green.underline`${origination.contractAddress}`
);
} catch (error: any) {
console.log("");
console.log(chalk.redBright`Error during deployment:`);
console.log(error);
process.exit(1);
}
}
deploy();