TON contracts for Agorata
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.

52 lines
1.5 KiB

2 years ago
const main = require('../contracts/main');
const subcommand = require('subcommand');
const {Address} = require("ton");
const {keyPairFromSeed, getSecureRandomBytes} = require("ton-crypto");
const argv = process.argv.slice(2);
let commands = [
{
name: 'sign-message',
options: [ // cliclopts options
// {
// name: 'loud',
// boolean: true,
// default: false,
// abbr: 'v',
// help: 'print out all output loudly'
// }
{
name: 'domain'
},
{
name: 'collection'
},
{
name: 'buyer',
help: 'Buyer\'s address'
},
{
name: 'key',
help: 'Secret key, hex-encoded'
}
],
command: function sign_message(args) {
let key = Buffer.from(args.key, 'hex');
let collection = Address.parse(args.collection);
let buyer = Address.parse(args.buyer);
let signature = main.signBuy(args.domain, collection, buyer, key);
console.log(signature);
}
},
{
name: 'keygen',
command: async function keygen(args) {
let keypair = keyPairFromSeed(await getSecureRandomBytes(32));
console.log(keypair.secretKey.toString('hex'));
}
}
]
let match = subcommand(commands);
let opts = match(argv);