create-tezos-smart-contract
Version:
Node.js toolset to write, test and deploy Tezos smart contracts
50 lines (49 loc) • 2.97 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createAccountsParams = exports.createProtocolParams = exports.flextesaProtocols = void 0;
const tezos_1 = require("../tezos");
exports.flextesaProtocols = {
[tezos_1.TezosProtocols.CARTHAGE]: { hash: "PsCARTHAGazKbHtnKfLzQg3kms52kSRpgnDY982a9oYsSXRLQEb", prefix: "006-PsCARTHA", kind: "Carthage" },
[tezos_1.TezosProtocols.DELPHI]: { hash: "PsDELPH1Kxsxt8f9eWbxQeRxkjfbxoqM52jvs5Y5fBxWWh4ifpo", prefix: "007-PsDELPH1", kind: "Delphi" },
[tezos_1.TezosProtocols.EDO]: { hash: "PtEdo2ZkT9oKpimTah6x2embF25oss54njMuPzkJTEi5RqfdZFA", prefix: "008-PtEdoTez", kind: "Edo" },
[tezos_1.TezosProtocols.FLORENCE]: { hash: "PsFLorenaUUuikDWvMDr6fGBRG8kt3e3D3fHoXK1j1BFRxeSH4i", prefix: "009-PsFLoren", kind: "Florence" },
[tezos_1.TezosProtocols.GRANADA]: { hash: "PtGRANADsDU8R9daYKAgWnQYAJ64omN1o3KMGVCykShA97vQbvV", prefix: "010-PtGRANAD", kind: "Granada" },
[tezos_1.TezosProtocols.HANGZHOU]: { hash: "PtHangz2aRngywmSRGGvrcTyMbbdpWdpFKuS4uMWxg2RaH9i1qx", prefix: "011-PtHangz2", kind: "Hangzhou" },
[tezos_1.TezosProtocols.ITHACA]: { hash: "Psithaca2MLRFYargivpo7YvUr7wUDqyxrdhC5CQq78mRvimz6A", prefix: "012-Psithaca", kind: "Ithaca" }
};
const createProtocolParams = (tezosProtocol) => {
const protocol = exports.flextesaProtocols[tezosProtocol];
// Configure Tezos node apps with the proper one for selected protocol version
const params = [
"tezos-baker",
"tezos-endorser",
"tezos-accuser"
].reduce((acc, val) => {
acc.push(`--${val}`, `${val}-${protocol.prefix}`);
return acc;
}, []);
// Specify protocol version and hash
params.push("--protocol-hash", `${protocol.hash}`, "--protocol-kind", `${protocol.kind}`);
return params;
};
exports.createProtocolParams = createProtocolParams;
// Commands to later add accounts in Flextesa Docker running container
// docker exec -it my-sandbox /bin/sh
// tezos-client --endpoint http://localhost:20000 import secret key alice unencrypted:edsk3QoqBuvdamxouPhin7swCvkQNgq4jP5KZPbwWNnwdZpSpJiEbq
// tezos-client --endpoint http://localhost:20000 list known addresses
// tezos-client --endpoint http://localhost:20000 transfer 1.00 from alice to alice
// tezos-client --endpoint http://localhost:20000 bake for alice
const createAccountsParams = (accounts, amountTz = 100) => {
const balance = amountTz * Math.pow(10, 9); // XTZ in mutez
const params = [];
for (const name in accounts) {
const account = accounts[name];
params.push(...[
"--add-bootstrap-account", `${name},${account.pk},${account.pkh},unencrypted:${account.sk}@${balance}`,
"--no-daemons-for", name // DON'T USE THIS OPTION TOGETHER WITH --remove-default-bootstrap-accounts OTHERWISE TAQUITO GETS ANGRY BECAUSE OF EMPTY HEADER BLOCKS
]);
}
;
return params;
};
exports.createAccountsParams = createAccountsParams;