Writing a smart contract in TypeScript (TS)
Sample contract functionality
Sample code
function contract(args: string[]) {
// THIS SAMPLE ONLY SUPPORTS THE "register" FUNCTION
if (args && args.length === 2 && args[0] === "register") {
// GET THE CURRENT USER'S NAME OR DEFAULT TO "unknown" IF THIS IS THE FIRST CALL
const previous_name: string = process.env.DB_USER_CURRENT || "unknown";
// GET THE TOTAL USER COUNT
const total_user_count: number = parseInt(process.env.DB_TOTALUSERS || "0");
// WRITE PREVIOUS USER NAME TO STDOUT
process.stdout.write(`OUT=prevname: ${previous_name}\n`);
// UPDATE CURRENT USER NAME BY WRITING IT TO DB
process.stdout.write(`DBW=USER_CURRENT=${args[1]}\n`);
// STORE USER NAME UNDER A STORAGE SLOT FOR PERSISTENCE (CURRENT GETS OVERWRITTEN ON EACH CALL)
process.stdout.write(`DBW=USER_${total_user_count}=${args[1]}\n`);
// INCREMENT THE TOTAL USER COUNT
process.stdout.write(`DBW=TOTALUSERS=${(total_user_count + 1)}\n`);
process.exit(0);
}
if (args.length >= 1) {
process.stderr.write(`Wrong CMD: ${args[0]}\n`);
process.exit(1);
}
process.stderr.write("Wrong args!\n");
process.exit(1);
}
contract(process.argv.slice(2));Save the contract
Compiling a smart contract in TypeScript (TS)Last updated