Remove program error footgun and cleaner developer experience (#8042)

This commit is contained in:
Jack May
2020-01-31 10:58:07 -08:00
committed by GitHub
parent eff876881b
commit 0fd795a676
26 changed files with 127 additions and 160 deletions

View File

@@ -8,30 +8,33 @@
* Custom error for when input serialization fails
*/
extern uint32_t entrypoint(const uint8_t *input) {
extern uint64_t entrypoint(const uint8_t *input) {
SolKeyedAccount ka[4];
SolParameters params = (SolParameters) { .ka = ka };
if (!sol_deserialize(input, &params, SOL_ARRAY_SIZE(ka))) {
return INVALID_ARGUMENT;
return ERROR_INVALID_ARGUMENT;
}
switch (params.data[0]) {
case(1):
sol_log("return success");
return SUCCESS;
sol_log("return success");
return SUCCESS;
case(2):
sol_log("return a builtin");
return INVALID_ACCOUNT_DATA;
sol_log("return a builtin");
return ERROR_INVALID_ACCOUNT_DATA;
case(3):
sol_log("return custom error");
return 42;
sol_log("return custom error 42");
return 42;
case(4):
sol_log("return error that conflicts with success");
return 0x40000000;
sol_log("return an invalid error");
return ERROR_INVALID_ACCOUNT_DATA + 1;
case(5):
sol_log("return unknown builtin");
return TO_BUILTIN(50);
default:
sol_log("Unrecognized command");
return INVALID_INSTRUCTION_DATA;
sol_log("Unrecognized command");
return ERROR_INVALID_INSTRUCTION_DATA;
}
return SUCCESS;
}