You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
3.0 KiB
99 lines
3.0 KiB
2 years ago
|
const subcommand = require('subcommand');
|
||
|
|
||
|
const { deployTONB, deposit, withdraw, transfer, blacklistAddress } = require('./utils/interactions');
|
||
|
const { wallet_data, client } = require('./utils/config');
|
||
|
const { randomAddress, TON } = require('./utils/helpers');
|
||
|
const { toNano, Address } = require('ton');
|
||
|
|
||
|
const match = subcommand([
|
||
|
{
|
||
|
name: 'deposit',
|
||
|
options: [
|
||
|
{
|
||
|
name: 'amount',
|
||
|
help: 'Amount of TON to deposit',
|
||
|
default: '0.45'
|
||
|
},
|
||
|
{
|
||
|
name: 'wallet',
|
||
|
abbr: 'w',
|
||
|
default: '0',
|
||
|
required: false
|
||
|
}
|
||
|
],
|
||
|
async command(opts) {
|
||
|
let {my_wallet, secretKey} = await wallet_data(parseInt(opts._[1]));
|
||
|
let tonb_addr = await deployTONB(undefined, true);
|
||
|
await deposit(my_wallet, secretKey, parseFloat(opts._[0]) * 1000000000, tonb_addr);
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
name: 'withdraw',
|
||
|
options: [
|
||
|
{
|
||
|
name: 'amount',
|
||
|
abbr: 'a',
|
||
|
help: 'Amount of TON to withdraw',
|
||
|
default: '0.2'
|
||
|
},
|
||
|
{
|
||
|
name: 'wallet',
|
||
|
abbr: 'w',
|
||
|
default: '0',
|
||
|
required: false
|
||
|
}
|
||
|
],
|
||
|
async command(opts) {
|
||
|
let {my_wallet, secretKey} = await wallet_data(parseInt(opts._[1]));
|
||
|
let tonb_addr = await deployTONB(undefined, true);
|
||
|
await withdraw(my_wallet, secretKey, parseFloat(opts._[0]) * 1000000000, tonb_addr);
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
name: 'transfer',
|
||
|
options: [
|
||
|
{
|
||
|
name: 'amount',
|
||
|
help: 'Amount of TON to transfer',
|
||
|
default: '0.2'
|
||
|
},
|
||
|
{
|
||
|
name: 'address',
|
||
|
help: 'Address to transfer TON to',
|
||
|
default: randomAddress()
|
||
|
}],
|
||
|
async command(opts) {
|
||
|
let {my_wallet, secretKey} = await wallet_data();
|
||
|
let tonb_addr = await deployTONB(undefined, true);
|
||
|
await transfer(my_wallet, secretKey, parseFloat(opts._[0]) * 1000000000, tonb_addr, opts._[1]);
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
name: 'blacklist',
|
||
|
options: [
|
||
|
{
|
||
|
name: 'address',
|
||
|
},
|
||
|
{
|
||
|
name: 'wallet',
|
||
|
abbr: 'w',
|
||
|
default: '0',
|
||
|
required: false
|
||
|
}
|
||
|
],
|
||
|
async command(opts) {
|
||
|
let {my_wallet, secretKey} = await wallet_data(parseInt(opts._[1]));
|
||
|
let tonb_addr = await deployTONB(undefined, true);
|
||
|
if (!opts._[0]) {
|
||
|
opts._[0] = 'kQD7zbEMaWC2yMgSJXmIF7HbLr1yuBo2GnZF_CJNkUiGSVZ8'// my_wallet.address;
|
||
|
}
|
||
|
let addr = Address.parse(opts._[0]);
|
||
|
await blacklistAddress(my_wallet, secretKey, tonb_addr, addr);
|
||
|
}
|
||
|
}
|
||
|
]);
|
||
|
const argv = process.argv.slice(2);
|
||
|
|
||
|
let opts = match(argv);
|
||
|
|