diff --git a/index.ts b/index.ts index 3f793549e9185b2534e4eca2ecabbe4d113ccd0b..0493023e44b6d967baa8fa1b1e509736e5860c1e 100644 --- a/index.ts +++ b/index.ts @@ -1,56 +1,15 @@ import { Command } from 'commander'; import chalk from 'chalk'; -import { createInterface } from 'readline'; import fs from "fs"; import { TezosToolkit } from '@taquito/taquito'; import { InMemorySigner } from '@taquito/signer'; -import figlet from 'figlet'; - -// START SERVICE -function createToken(address: string, tezos) { - tezos.wallet.at(address) - .then((contract) => contract.methodsObject.discoverPlanet({ - density: 0, - planet_type: "terrestrial", - coordinate: [0,0,0], - name: "test" - }).send()) - .then((op) => { - console.log(`Hash: ${op.opHash}`); - return op.confirmation(); - }) - .then((result) => { - console.log(result); - if (result.completed) { - console.log(`Transaction correctly processed! - Block: ${result.block.header.level} - Chain ID: ${result.block.chain_id}`); - } else { - console.log('An error has occurred'); - } - }) - .catch((err) => console.log(err)); -} -// END SERVICE +import { askQuestion } from './src/utils/askQuestion.js'; +import { getBalance } from './src/services/getBalance.js'; +import { getAsciiArtText } from './src/utils/getAsciiArtText.js'; const tezos = new TezosToolkit('https://ghostnet.tezos.marigold.dev'); - const program = new Command(); -async function askQuestion(question: string): Promise<string> { - const readline = createInterface({ - input: process.stdin, - output: process.stdout - }); - - return new Promise(resolve => { - readline.question(question, (answer: string) => { - resolve(answer.trim()); - readline.close(); - }); - }); -} - program .option('-f, --file <filePath>', 'Chemin du fichier JSON du portefeuille') .parse(process.argv); @@ -60,43 +19,16 @@ if (!program.args) { process.exit(1); } -// Charger le fichier JSON du portefeuille +// LOAD WALLET FROM JSON const walletData = JSON.parse(fs.readFileSync(program.args[0], 'utf8')); +// REGISTER THE PROVIDER const signer = new InMemorySigner(walletData.privateKey); tezos.setProvider({ signer }); -async function getBalance(privateKey) { - try { - // Obtenez le solde du portefeuille associé à la clé privée - const balance = await tezos.tz.getBalance(await tezos.signer.publicKeyHash()); - console.log(`\nSolde du portefeuille: ${balance.toNumber() / 1000000} ꜩ\n`); - } catch (error) { - console.error('Erreur lors de la récupération du solde:', error); - } -} - program .action(async () => { - await figlet.text( - "My Asso", - { - font: "Big Money-nw", - horizontalLayout: "default", - verticalLayout: "default", - width: 80, - whitespaceBreak: true, - }, - function (err, data) { - if (err) { - console.log("Something went wrong..."); - console.dir(err); - return; - } - console.log(data); - } - ); - + await getAsciiArtText() console.log(`\n`); // Définir un moyen de connaître le rôle @@ -128,7 +60,8 @@ program // Faire le call pour créer un token console.log(chalk.green("\nVotre token a été créé !!\n")); } else if (choice === '3') { - await getBalance(walletData.privateKey); + const balance = await getBalance(tezos); + console.log(`\nSolde du portefeuille: ${balance} ꜩ\n`); } else { console.log('Choix invalide'); } @@ -146,7 +79,8 @@ program console.log(chalk.green("\nVous avez soumis une proposition !!\n")); // Faire l'appel a post proposal association } else if (choice === '2') { - await getBalance(walletData.privateKey); + const balance = await getBalance(tezos); + console.log(`\nSolde du portefeuille: ${balance} ꜩ\n`); } else { console.log('Choix invalide'); } @@ -166,7 +100,8 @@ program console.log(chalk.green("\nVous avez rejoint l'association !!\n")); // Faire l'appel a join association } else if (choice === '2') { - await getBalance(walletData.privateKey); + const balance = await getBalance(tezos); + console.log(`\nSolde du portefeuille: ${balance} ꜩ\n`); } else { console.log('Choix invalide'); } diff --git a/package-lock.json b/package-lock.json index 67aabcd1c7c704fce66052b613211838072f4350..60f07d94e99d1e613303d279873b65e7efc03ce4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,6 +21,7 @@ }, "devDependencies": { "@types/commander": "^2.12.2", + "@types/figlet": "^1.5.8", "@types/node": "^20.11.19" } }, @@ -415,6 +416,12 @@ "commander": "*" } }, + "node_modules/@types/figlet": { + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/@types/figlet/-/figlet-1.5.8.tgz", + "integrity": "sha512-G22AUvy4Tl95XLE7jmUM8s8mKcoz+Hr+Xm9W90gJsppJq9f9tHvOGkrpn4gRX0q/cLtBdNkWtWCKDg2UDZoZvQ==", + "dev": true + }, "node_modules/@types/node": { "version": "20.11.19", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.19.tgz", diff --git a/package.json b/package.json index 47053d0bb36ca6d53f22e2b2f99c11865d3e2ac6..d064a1237d49f4fcf3e1a773ddaf8e1c6e6733ae 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ }, "devDependencies": { "@types/commander": "^2.12.2", + "@types/figlet": "^1.5.8", "@types/node": "^20.11.19" } } diff --git a/src/services/createToken.ts b/src/services/createToken.ts index 69b8a54fef9dd8207c2c9ebde310f5a16fe380fc..9c23a0601998067cf8999af37351977a956e416d 100644 --- a/src/services/createToken.ts +++ b/src/services/createToken.ts @@ -1,9 +1,17 @@ -function createToken(address: string, tezos) { - tezos.wallet.at(address) - .then((contract) => contract.methodsObject.areYouThere(true).send()) +function createToken(address: string, tezos: any) { + const planetRequest = { + name: "Earth", + coordinate: [0, 0, 0], + planet_type: ["Terrestrial"], + density: 1n + }; + tezos.wallet.at(address) + .then(async (contract) => { + await contract.methods.discoverPlanet(planetRequest, contract.storage()).send(); + }) .then((op) => { - console.log(`Hash: ${op.opHash}`); - return op.confirmation(); + console.log(`Hash: ${op.opHash}`); + return op.confirmation(); }) .then((result) => { console.log(result); @@ -16,6 +24,6 @@ function createToken(address: string, tezos) { } }) .catch((err) => console.log(err)); -} + } export { createToken } \ No newline at end of file diff --git a/src/services/getBalance.ts b/src/services/getBalance.ts new file mode 100644 index 0000000000000000000000000000000000000000..71b2cf575cdc3bc1c8891a63ff90a99dd5d7e4e5 --- /dev/null +++ b/src/services/getBalance.ts @@ -0,0 +1,12 @@ +import { TezosToolkit } from "@taquito/taquito"; + +async function getBalance(tezos: TezosToolkit) { + try { + const balance = await tezos.tz.getBalance(await tezos.signer.publicKeyHash()); + return balance.toNumber() / 1000000 + } catch (error) { + console.error('Erreur lors de la récupération du solde:', error); + } +} + +export { getBalance } \ No newline at end of file diff --git a/src/utils/askQuestion.ts b/src/utils/askQuestion.ts new file mode 100644 index 0000000000000000000000000000000000000000..50b8a1fe65f565675ff2255bc0e8642ad2b74098 --- /dev/null +++ b/src/utils/askQuestion.ts @@ -0,0 +1,17 @@ +import { createInterface } from 'readline'; + +async function askQuestion(question: string): Promise<string> { + const readline = createInterface({ + input: process.stdin, + output: process.stdout + }); + + return new Promise(resolve => { + readline.question(question, (answer: string) => { + resolve(answer.trim()); + readline.close(); + }); + }); +} + +export { askQuestion } \ No newline at end of file diff --git a/src/utils/getAsciiArtText.ts b/src/utils/getAsciiArtText.ts new file mode 100644 index 0000000000000000000000000000000000000000..c98dbc847350816a82438b09e748a663a246dedd --- /dev/null +++ b/src/utils/getAsciiArtText.ts @@ -0,0 +1,24 @@ +import figlet from 'figlet'; + +async function getAsciiArtText() { + await figlet.text( + "My Asso", + { + font: "Big Money-nw", + horizontalLayout: "default", + verticalLayout: "default", + width: 80, + whitespaceBreak: true, + }, + function (err, data) { + if (err) { + console.log("Something went wrong..."); + console.dir(err); + return; + } + console.log(data); + } + ); +} + +export { getAsciiArtText } \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index e12fb67a91ca045acc6af8ca64ecc94d6912500d..a27b1cd7d84130f6c51928b7882ee5a15856a7d1 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "es6", + "target": "ES2022", "module": "esnext", "esModuleInterop": true, "moduleResolution": "node",