Writing a smart contract in Java
Sample contract functionality
Sample code
public class contract {
static public void main(String[] args) {
// THIS SAMPLE ONLY SUPPORTS THE "register" FUNCTION
if (args.length == 2 && args[0].equals("register")) {
// GET THE CURRENT USER'S NAME
String previousName = System.getenv("DB_USER_CURRENT");
// OR DEFAULT TO "unknown" IF THIS IS THE FIRST CALL
if (previousName == null || previousName.length() == 0) {
previousName = "unknown";
}
// GET THE TOTAL USER COUNT
int totalUserCount = envAtoi("DB_TOTALUSERS");
// WRITE PREVIOUS USER NAME TO STDOUT
System.out.println("OUT=prevname: " + previousName);
// UPDATE CURRENT USER NAME BY WRITING IT TO DB
System.out.println("DBW=USER_CURRENT=" + args[1]);
// STORE USER NAME UNDER A STORAGE SLOT FOR PERSISTENCE (CURRENT GETS OVERWRITTEN ON EACH CALL)
System.out.println("DBW=USER_" + totalUserCount + "=" + args[1]);
// INCREMENT THE TOTAL USER COUNT
System.out.println("DBW=TOTALUSERS=" + (totalUserCount+1));
return;
}
// ENSURE PROPER INPUT
if (args.length >= 1) {
System.err.println("Wrong CMD: " + args[0]);
System.exit(1);
}
System.err.println("Wrong args!");
System.exit(1);
};
static int envAtoi(String env) {
String val = System.getenv(env);
if (val == null || val.length() == 0) {
return 0;
}
try {
return Integer.valueOf(val);
} catch (Exception e) {
return 0;
}
};
};
Save the contract
Last updated