|
|
|
const main = require('../contracts/main');
|
|
|
|
const subcommand = require('subcommand');
|
|
|
|
const {Address, SendMode, InternalMessage, CommonMessageInfo, StateInit, CellMessage, Cell} = require("ton");
|
|
|
|
const {getWallet} = require("../contracts/main");
|
|
|
|
const {sendInternalMessageWithWallet} = require("../contracts/utils");
|
|
|
|
const {hex} = require("../build/jetton-wallet.compiled.json")
|
|
|
|
|
|
|
|
|
|
|
|
const argv = process.argv.slice(2);
|
|
|
|
let commands = [
|
|
|
|
{
|
|
|
|
name: 'deposit',
|
|
|
|
options: [
|
|
|
|
{
|
|
|
|
name: 'minter',
|
|
|
|
help: 'The jetton address'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'amount',
|
|
|
|
}
|
|
|
|
],
|
|
|
|
command: async function deposit(args) {
|
|
|
|
let [walletContract, walletKey] = await getWallet();
|
|
|
|
await sendInternalMessageWithWallet({
|
|
|
|
walletContract, secretKey: walletKey.secretKey, value: (parseFloat(args._[1]) + 0.2) * main.TON(), to: Address.parse(args._[0]),
|
|
|
|
body: main.depositMsg((parseFloat(args._[1]) * main.TON()))
|
|
|
|
})
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'withdraw',
|
|
|
|
options: [
|
|
|
|
{
|
|
|
|
name: 'minter',
|
|
|
|
help: 'The jetton address'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: "amount"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
command: async function withdraw(args) {
|
|
|
|
let [walletContract, walletKey] = await getWallet();
|
|
|
|
await sendInternalMessageWithWallet({
|
|
|
|
walletContract, secretKey: walletKey.secretKey, value: 0.15 * main.TON(), to: Address.parse(args._[0]),
|
|
|
|
body: main.withdrawMsg((parseFloat(args._[1]) * main.TON()))
|
|
|
|
})
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'transfer',
|
|
|
|
options: [
|
|
|
|
{
|
|
|
|
name: 'minter',
|
|
|
|
help: 'The jetton address'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: "amount"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: "target"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
command: async function transfer(args) {
|
|
|
|
let [walletContract, walletKey] = await getWallet();
|
|
|
|
let address = main.getJettonAddress(walletContract.address, Address.parse(args._[0]), Cell.fromBoc(hex)[0]);
|
|
|
|
await sendInternalMessageWithWallet({
|
|
|
|
walletContract, secretKey: walletKey.secretKey, value: 0.15 * main.TON(), to: address,
|
|
|
|
body: main.transferMsg((parseFloat(args._[1]) * main.TON()), Address.parse(args._[2]))
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
|
|
|
|
let match = subcommand(commands);
|
|
|
|
let opts = match(argv);
|