From 7ced8521dd6700e95d8201ce6685ccff692a70e7 Mon Sep 17 00:00:00 2001 From: cusma Date: Wed, 9 Oct 2024 13:04:45 +0200 Subject: [PATCH 01/21] doc: ARC-65 --- ARCs/arc-0065.md | 118 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 ARCs/arc-0065.md diff --git a/ARCs/arc-0065.md b/ARCs/arc-0065.md new file mode 100644 index 000000000..37382251c --- /dev/null +++ b/ARCs/arc-0065.md @@ -0,0 +1,118 @@ +--- +arc: 65 +title: AVM Run Time Errors In Program +description: Informative AVM run time errors based on program bytecode +author: Cosimo Bassi (@cusma), Tasos Bitsios (@tasosbit), Steve Ferrigno (@nullun) +discussions-to: https://github.com/algorandfoundation/ARCs/issues/XXX +status: Draft +type: Standards Track +category: ARC +created: 2024-10-09 + +--- + +## Abstract + +This document introduces conventions for rising informative run time error messages +on the Algorand Virtual Machine (AVM) directly from the program bytecode. + +## Motivation + +The AVM does not offer native opcodes to catch and raise run time errors. + +The lack of native error handling semantics could lead to fragmentation of tooling +and frictions for AVM clients, who are unable to retrieve informative and useful +hints about the occurred run time failures. + +This ARC formalizes a convention to rise AVM run time errors based just on the program +bytecode. + +## Specification + +The keywords "**MUST**", "**MUST NOT**", "**REQUIRED**", "**SHALL**", "**SHALL NOT**", +"**SHOULD**", "**SHOULD NOT**", "**RECOMMENDED**", "**MAY**", and "**OPTIONAL**" +in this document are to be interpreted as described in RFC 2119. + +> Notes like this are non-normative. + +### In Program Errors + +When a program wants to emit a run time error code, contained in the bytecode, +it **MUST**: + +1. Push to the stack the bytes string containing the error code; +1. Push to the stack the `log` opcode; +1. Push to the stack the `err` opcode. + +Upon a program run time failure, the Algod API returns both the failed *program +counter* (`pc`) and the `log` content. + +> The AVM programs bytecode have limited sized. In this convention, the errors are part of the bytecode. It is **RECOMMENDED** to use fixed length error codes or shorr error messages. + +### Example + +The program example raises the error code `ERR:001 - Invalid Method` for any application +call to methods different from `m1()void`. + +```teal +#pragma version 10 + +txn ApplicationID +bz end + +method "m1()void" +txn ApplicationArgs 0 +match method1 +byte "ERR:001 - Invalid Method" +log +err + +method1: +b end + +end: +int 1 +``` + +Full Algod API response of a failed execution: + +```json +{ + "data": { + "app-index":1004, + "eval-states": [ + { + "logs": ["RVJSOiBJbnZhbGlkIE1ldGhvZA=="] + } + ], + "group-index":0, + "pc":41 + }, + "message":"TransactionPool.Remember: transaction ESI4GHAZY46MCUCLPBSB5HBRZPGO6V7DDUM5XKMNVPIRJK6DDAGQ: logic eval error: err opcode executed. Details: app=1004, pc=41, opcodes=pushbytes 0x4552523a20496e76616c6964204d6574686f64 // \"ERR:001 - Invalid Method\"; log; err; label2:" +} +``` + +The `message` field contains the error code `ERR:001 - Invalid Method`. + +## Rationale + +This convention for AVM run time error codes presents the following PROS and CONS. + +### PROS + +- No additional artifacts required to bind the failed *program counter* (`pc`) to +the informative *error code*; +- Error codes are returned directly in the Algod API response, no additional client +operation needed. + +### CONS + +- Error codes consume program bytecode size. + +## Security Considerations + +> Not applicable. + +## Copyright + +Copyright and related rights waived via CCO. From 3848dae6e5a2968c70af61598c5e78b78eefbdb1 Mon Sep 17 00:00:00 2001 From: cusma Date: Wed, 9 Oct 2024 13:07:05 +0200 Subject: [PATCH 02/21] doc: fix discussions-to field --- ARCs/arc-0065.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ARCs/arc-0065.md b/ARCs/arc-0065.md index 37382251c..86049b544 100644 --- a/ARCs/arc-0065.md +++ b/ARCs/arc-0065.md @@ -3,7 +3,7 @@ arc: 65 title: AVM Run Time Errors In Program description: Informative AVM run time errors based on program bytecode author: Cosimo Bassi (@cusma), Tasos Bitsios (@tasosbit), Steve Ferrigno (@nullun) -discussions-to: https://github.com/algorandfoundation/ARCs/issues/XXX +discussions-to: https://github.com/algorandfoundation/ARCs/issues/315 status: Draft type: Standards Track category: ARC From 393d7b0058103668c6693cd70a111c96d1c57867 Mon Sep 17 00:00:00 2001 From: cusma Date: Wed, 9 Oct 2024 13:15:05 +0200 Subject: [PATCH 03/21] nit: lint --- ARCs/arc-0065.md | 1 - 1 file changed, 1 deletion(-) diff --git a/ARCs/arc-0065.md b/ARCs/arc-0065.md index 86049b544..dd0adaa0b 100644 --- a/ARCs/arc-0065.md +++ b/ARCs/arc-0065.md @@ -8,7 +8,6 @@ status: Draft type: Standards Track category: ARC created: 2024-10-09 - --- ## Abstract From c5b57c7a371200a88062bbf28c5c45b26d911814 Mon Sep 17 00:00:00 2001 From: Cosimo Bassi <65770425+cusma@users.noreply.github.com> Date: Wed, 9 Oct 2024 13:30:42 +0200 Subject: [PATCH 04/21] doc: review's suggestion Co-authored-by: nullun --- ARCs/arc-0065.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ARCs/arc-0065.md b/ARCs/arc-0065.md index dd0adaa0b..0223eb696 100644 --- a/ARCs/arc-0065.md +++ b/ARCs/arc-0065.md @@ -40,8 +40,8 @@ When a program wants to emit a run time error code, contained in the bytecode, it **MUST**: 1. Push to the stack the bytes string containing the error code; -1. Push to the stack the `log` opcode; -1. Push to the stack the `err` opcode. +1. Execute the `log` opcode to use the bytes from the top of the stack; +1. Execute the `err` opcode to immediately terminal the program. Upon a program run time failure, the Algod API returns both the failed *program counter* (`pc`) and the `log` content. From 527661827a41f66cd6cd2a45858e9115a7554e61 Mon Sep 17 00:00:00 2001 From: cusma Date: Wed, 9 Oct 2024 13:31:55 +0200 Subject: [PATCH 05/21] doc: nit --- ARCs/arc-0065.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ARCs/arc-0065.md b/ARCs/arc-0065.md index 0223eb696..a535ba398 100644 --- a/ARCs/arc-0065.md +++ b/ARCs/arc-0065.md @@ -41,7 +41,7 @@ it **MUST**: 1. Push to the stack the bytes string containing the error code; 1. Execute the `log` opcode to use the bytes from the top of the stack; -1. Execute the `err` opcode to immediately terminal the program. +1. Execute the `err` opcode to immediately terminate the program. Upon a program run time failure, the Algod API returns both the failed *program counter* (`pc`) and the `log` content. From f86cc282c79057f2fdf7acc6c3f71d290535e3c8 Mon Sep 17 00:00:00 2001 From: cusma Date: Wed, 9 Oct 2024 13:41:49 +0200 Subject: [PATCH 06/21] doc: nit --- ARCs/arc-0065.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ARCs/arc-0065.md b/ARCs/arc-0065.md index a535ba398..04497fe91 100644 --- a/ARCs/arc-0065.md +++ b/ARCs/arc-0065.md @@ -12,8 +12,8 @@ created: 2024-10-09 ## Abstract -This document introduces conventions for rising informative run time error messages -on the Algorand Virtual Machine (AVM) directly from the program bytecode. +This document introduces a convention for rising informative run time errors on +the Algorand Virtual Machine (AVM) directly from the program bytecode. ## Motivation From 348ff1e2d4260486fa4d2b00451d17491886897d Mon Sep 17 00:00:00 2001 From: cusma Date: Wed, 9 Oct 2024 13:55:17 +0200 Subject: [PATCH 07/21] doc: typo --- ARCs/arc-0065.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ARCs/arc-0065.md b/ARCs/arc-0065.md index 04497fe91..96de70d41 100644 --- a/ARCs/arc-0065.md +++ b/ARCs/arc-0065.md @@ -46,7 +46,9 @@ it **MUST**: Upon a program run time failure, the Algod API returns both the failed *program counter* (`pc`) and the `log` content. -> The AVM programs bytecode have limited sized. In this convention, the errors are part of the bytecode. It is **RECOMMENDED** to use fixed length error codes or shorr error messages. +> The AVM programs bytecode have limited sized. In this convention, the errors are +> part of the bytecode. It is **RECOMMENDED** to use fixed length error codes or +> short error messages. ### Example From 32e90928b719ea5c637b4fbf37743ef28d36cdd2 Mon Sep 17 00:00:00 2001 From: cusma Date: Mon, 21 Oct 2024 10:26:11 +0200 Subject: [PATCH 08/21] doc: specify error format --- ARCs/arc-0065.md | 39 +++++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/ARCs/arc-0065.md b/ARCs/arc-0065.md index 96de70d41..3a84b6d4f 100644 --- a/ARCs/arc-0065.md +++ b/ARCs/arc-0065.md @@ -36,23 +36,38 @@ in this document are to be interpreted as described in Notes like this are non-normative. +### Error format + +> The AVM programs bytecode have limited sized. In this convention, the errors are +> part of the bytecode, therefore it is good to mind errors' formatting and sizing. + +> Errors consist of a _code_ and an optional _short message_. + +Errors **MUST** statisfy this regexp: `ERR:(\w*)(?:\s?-\s?(.*))?`. + +It is **RECOMMENDED** to use `UTF-8` for the error bytes string encoding. + +It is **RECOMMENDED** to use fixed length error codes and _short_ error messages. + ### In Program Errors -When a program wants to emit informative run time errors, contained in the bytecode, +When a program wants to emit informative run time errors, directly from the bytecode, it **MUST**: 1. Push to the stack the bytes string containing the error; 1. Execute the `log` opcode to use the bytes from the top of the stack; 1. Execute the `err` opcode to immediately terminate the program. -Upon a program run time failure, the Algod API returns both the failed *program -counter* (`pc`) and the `log` content. +Upon a program run time failure, the Algod API response contains both the failed +_program counter_ (`pc`) and the `logs` array with the _errors_. -### Error format - -> The AVM programs bytecode have limited sized. In this convention, the errors are -> part of the bytecode, therefore it is good to mind errors' formatting and sizing. - -> Errors consist of a _code_ and an optional _short message_. +The program **MAY** return multiple errors in the same failed execution. -Errors **MUST** statisfy the regexp: `ERR:(\w*)(?:\s?-\s?(.*))?`. +The errors **MUST** be retrieved by: -It is **RECOMMENDED** to use `UTF-8` for the error encoding. - -It is **RECOMMENDED** to use fixed length error codes and _short_ error messages. +1. Decoding the `base64` elements of the `logs` array; +1. Validating the decoded elements against the error regexp. ### Error examples +> Error conforming this specification are always prefixed with `ERR:`. + Error with a _numeric code_: `ERR:042`. Error with an _alphanumeric code_: `ERR:BadRequest`. @@ -69,8 +78,8 @@ Error with a _numeric code_ and _short message_: `ERR:042 - A Funny Error`. ### Program example -The program example raises the error `ERR:001 - Invalid Method` for any application -call to methods different from `m1()void`. +The following program example raises the error `ERR:001 - Invalid Method` for any +application call to methods different from `m1()void`. ```teal #pragma version 10 @@ -110,7 +119,12 @@ Full Algod API response of a failed execution: } ``` -The `message` field contains the error `ERR:001 - Invalid Method`. +The `logs` array contains the `base64` encoded error `ERR:001 - Invalid Method`. + +The `logs` array **MAY** contain elements that are not errors (as specified by the +regexp). + +It is **NOT RECOMMENDED** to use on the `message` field to retrieve errors. ## Rationale @@ -118,10 +132,9 @@ This convention for AVM run time errors presents the following PROS and CONS. ### PROS -- No additional artifacts required to bind the failed *program counter* (`pc`) to -the informative _error_; -- Errors are returned directly in the Algod API response, no additional client operation -needed. +- No additional artifacts required to return informative run time errors; +- Errors are directly returned in the Algod API response, which can be filtered +with the specified error regexp. ### CONS From 807f49da9c64bad2f5f976d179b344318dd7eef9 Mon Sep 17 00:00:00 2001 From: cusma Date: Tue, 22 Oct 2024 18:27:10 +0200 Subject: [PATCH 11/21] doc: add 32 bytes recommendation --- ARCs/arc-0065.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ARCs/arc-0065.md b/ARCs/arc-0065.md index 48d74de27..29c5976aa 100644 --- a/ARCs/arc-0065.md +++ b/ARCs/arc-0065.md @@ -47,6 +47,8 @@ It is **RECOMMENDED** to use `UTF-8` for the error bytes string encoding. It is **RECOMMENDED** to use fixed length error codes and _short_ error messages. +It is **RECOMMENDED** to avoid error byte strings of _exactly_ to 32 bytes. + ### In Program Errors When a program wants to emit informative run time errors, directly from the bytecode, From 859a73f80c2beff0dc081e9601e78edf6a45e250 Mon Sep 17 00:00:00 2001 From: cusma Date: Fri, 25 Oct 2024 17:28:40 +0200 Subject: [PATCH 12/21] doc: add 8 bytes recommendation --- ARCs/arc-0065.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ARCs/arc-0065.md b/ARCs/arc-0065.md index 29c5976aa..830c6c252 100644 --- a/ARCs/arc-0065.md +++ b/ARCs/arc-0065.md @@ -47,7 +47,7 @@ It is **RECOMMENDED** to use `UTF-8` for the error bytes string encoding. It is **RECOMMENDED** to use fixed length error codes and _short_ error messages. -It is **RECOMMENDED** to avoid error byte strings of _exactly_ to 32 bytes. +It is **RECOMMENDED** to avoid error byte strings of _exactly_ 8 or 32 bytes. ### In Program Errors From 22128f91fa23bb65106dc5e66f3a8f115ce9ab76 Mon Sep 17 00:00:00 2001 From: cusma Date: Fri, 25 Oct 2024 17:41:51 +0200 Subject: [PATCH 13/21] doc: compilers recommendations --- ARCs/arc-0065.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/ARCs/arc-0065.md b/ARCs/arc-0065.md index 830c6c252..70ba8ec58 100644 --- a/ARCs/arc-0065.md +++ b/ARCs/arc-0065.md @@ -128,18 +128,23 @@ regexp). It is **NOT RECOMMENDED** to use on the `message` field to retrieve errors. +### AVM Compilers + +AVM compilers (and related tools) **SHOULD** provide two error compiling options: + +1. ARC-65 as **default**; +1. ARC-64 as fallback, if compiled bytecode size exceeds the AVM limits. + ## Rationale This convention for AVM run time errors presents the following PROS and CONS. -### PROS - +**PROS:** - No additional artifacts required to return informative run time errors; - Errors are directly returned in the Algod API response, which can be filtered with the specified error regexp. -### CONS - +**CONS:** - Errors consume program bytecode size. ## Security Considerations From ed6d52649663a3b882c6a544eb75e517226c2e6d Mon Sep 17 00:00:00 2001 From: cusma Date: Fri, 25 Oct 2024 17:43:03 +0200 Subject: [PATCH 14/21] doc: error code recommendations --- ARCs/arc-0065.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ARCs/arc-0065.md b/ARCs/arc-0065.md index 70ba8ec58..6cf9b3c6c 100644 --- a/ARCs/arc-0065.md +++ b/ARCs/arc-0065.md @@ -45,7 +45,10 @@ Errors **MUST** statisfy this regexp: `ERR:(\w*)(?:\s?-\s?(.*))?`. It is **RECOMMENDED** to use `UTF-8` for the error bytes string encoding. -It is **RECOMMENDED** to use fixed length error codes and _short_ error messages. +It is **RECOMMENDED** to use _short_ error messages. + +It is **RECOMMENDED** to use [camel case](https://en.wikipedia.org/wiki/Camel_case) +for alphanumeric error codes. It is **RECOMMENDED** to avoid error byte strings of _exactly_ 8 or 32 bytes. From c7ebf3d9e3495f973a929d3054d350bd038adcb9 Mon Sep 17 00:00:00 2001 From: cusma Date: Fri, 25 Oct 2024 17:54:23 +0200 Subject: [PATCH 15/21] doc: lint ARC links --- ARCs/arc-0065.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ARCs/arc-0065.md b/ARCs/arc-0065.md index 6cf9b3c6c..18a2c4734 100644 --- a/ARCs/arc-0065.md +++ b/ARCs/arc-0065.md @@ -135,8 +135,9 @@ It is **NOT RECOMMENDED** to use on the `message` field to retrieve errors. AVM compilers (and related tools) **SHOULD** provide two error compiling options: -1. ARC-65 as **default**; -1. ARC-64 as fallback, if compiled bytecode size exceeds the AVM limits. +1. The one specified in this ARC as **default**; +1. The one specified in [ARC-64](./arc-0064.md) as fallback, if compiled bytecode +size exceeds the AVM limits. ## Rationale From ea82c313c8c75a8dda9907666f966b6b53a88840 Mon Sep 17 00:00:00 2001 From: cusma Date: Fri, 25 Oct 2024 17:56:01 +0200 Subject: [PATCH 16/21] doc: fix non-relative links --- ARCs/arc-0065.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ARCs/arc-0065.md b/ARCs/arc-0065.md index 18a2c4734..0f4968f14 100644 --- a/ARCs/arc-0065.md +++ b/ARCs/arc-0065.md @@ -47,7 +47,7 @@ It is **RECOMMENDED** to use `UTF-8` for the error bytes string encoding. It is **RECOMMENDED** to use _short_ error messages. -It is **RECOMMENDED** to use [camel case](https://en.wikipedia.org/wiki/Camel_case) +It is **RECOMMENDED** to use camel case for alphanumeric error codes. It is **RECOMMENDED** to avoid error byte strings of _exactly_ 8 or 32 bytes. From e0b000731a0bb7882922c7bb76419fc13d12730a Mon Sep 17 00:00:00 2001 From: cusma Date: Tue, 5 Nov 2024 15:16:05 +0100 Subject: [PATCH 17/21] doc: update error format according IRL feedback --- ARCs/arc-0065.md | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/ARCs/arc-0065.md b/ARCs/arc-0065.md index 0f4968f14..550689138 100644 --- a/ARCs/arc-0065.md +++ b/ARCs/arc-0065.md @@ -41,7 +41,12 @@ in this document are to be interpreted as described in Compilers **MAY** optimize for program bytecode size by storing the error prefixes +in the `bytecblock` and concatenating the error message at the cost of some extra +opcodes. + ## Rationale This convention for AVM run time errors presents the following PROS and CONS. From 2aa3e3c5c11a9a52c57f336c7565754e32c85914 Mon Sep 17 00:00:00 2001 From: cusma Date: Fri, 8 Nov 2024 17:03:58 +0100 Subject: [PATCH 18/21] doc: replace ARC-64 with ARC-56 --- ARCs/arc-0065.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ARCs/arc-0065.md b/ARCs/arc-0065.md index 550689138..62fab6ce5 100644 --- a/ARCs/arc-0065.md +++ b/ARCs/arc-0065.md @@ -141,7 +141,7 @@ It is **NOT RECOMMENDED** to use on the `message` field to retrieve errors. AVM compilers (and related tools) **SHOULD** provide two error compiling options: 1. The one specified in this ARC as **default**; -1. The one specified in [ARC-64](./arc-0064.md) as fallback, if compiled bytecode +1. The one specified in [ARC-56](./arc-0056.md) as fallback, if compiled bytecode size exceeds the AVM limits. > Compilers **MAY** optimize for program bytecode size by storing the error prefixes From 249f6f2a3b99d21663f5862b96472d0331b5d80a Mon Sep 17 00:00:00 2001 From: cusma Date: Fri, 22 Nov 2024 14:41:17 +0100 Subject: [PATCH 19/21] doc: update algod api response --- ARCs/arc-0065.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ARCs/arc-0065.md b/ARCs/arc-0065.md index 62fab6ce5..b43813a08 100644 --- a/ARCs/arc-0065.md +++ b/ARCs/arc-0065.md @@ -125,7 +125,7 @@ Full Algod API response of a failed execution: "group-index":0, "pc":41 }, - "message":"TransactionPool.Remember: transaction ESI4GHAZY46MCUCLPBSB5HBRZPGO6V7DDUM5XKMNVPIRJK6DDAGQ: logic eval error: err opcode executed. Details: app=1004, pc=41, opcodes=pushbytes 0x4552523a3030313a496e76616c6964204d6574686f64 // \"ERR:001:Invalid Method\"; log; err; label2:" + "message":"TransactionPool.Remember: transaction ESI4GHAZY46MCUCLPBSB5HBRZPGO6V7DDUM5XKMNVPIRJK6DDAGQ: logic eval error: err opcode executed. Details: app=1004, pc=41" } ``` @@ -134,7 +134,7 @@ The `logs` array contains the `base64` encoded error `ERR:001:Invalid Method`. The `logs` array **MAY** contain elements that are not errors (as specified by the regexp). -It is **NOT RECOMMENDED** to use on the `message` field to retrieve errors. +It is **NOT RECOMMENDED** to use the `message` field to retrieve errors. ### AVM Compilers From b0492dd4f239f96bedd26015c9cd86e8b1cce673 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane?= Date: Fri, 22 Nov 2024 18:19:10 +0100 Subject: [PATCH 20/21] Last call --- ARCs/arc-0065.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ARCs/arc-0065.md b/ARCs/arc-0065.md index b43813a08..6b834eb77 100644 --- a/ARCs/arc-0065.md +++ b/ARCs/arc-0065.md @@ -4,7 +4,8 @@ title: AVM Run Time Errors In Program description: Informative AVM run time errors based on program bytecode author: Cosimo Bassi (@cusma), Tasos Bitsios (@tasosbit), Steve Ferrigno (@nullun) discussions-to: https://github.com/algorandfoundation/ARCs/issues/315 -status: Draft +status: Last Call +last-call-deadline: 2024-11-30 type: Standards Track category: ARC created: 2024-10-09 @@ -12,7 +13,7 @@ created: 2024-10-09 ## Abstract -This document introduces a convention for rising informative run time errors on +This document introduces a convention for rising informative run time errors on the Algorand Virtual Machine (AVM) directly from the program bytecode. ## Motivation @@ -29,7 +30,7 @@ bytecode. ## Specification The keywords "**MUST**", "**MUST NOT**", "**REQUIRED**", "**SHALL**", "**SHALL NOT**", -"**SHOULD**", "**SHOULD NOT**", "**RECOMMENDED**", "**MAY**", and "**OPTIONAL**" +"**SHOULD**", "**SHOULD NOT**", "**RECOMMENDED**", "**MAY**", and "**OPTIONAL**" in this document are to be interpreted as described in RFC 2119. > Notes like this are non-normative. @@ -118,7 +119,7 @@ Full Algod API response of a failed execution: "data": { "app-index":1004, "eval-states": [ - { + { "logs": ["RVJSOjAwMTpJbnZhbGlkIE1ldGhvZA=="] } ], From 6ded67ddb4f551818976f80ed80db4973b0222d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane?= Date: Mon, 9 Dec 2024 17:08:40 +0100 Subject: [PATCH 21/21] update to final --- ARCs/arc-0065.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ARCs/arc-0065.md b/ARCs/arc-0065.md index 6b834eb77..3a7094026 100644 --- a/ARCs/arc-0065.md +++ b/ARCs/arc-0065.md @@ -4,8 +4,7 @@ title: AVM Run Time Errors In Program description: Informative AVM run time errors based on program bytecode author: Cosimo Bassi (@cusma), Tasos Bitsios (@tasosbit), Steve Ferrigno (@nullun) discussions-to: https://github.com/algorandfoundation/ARCs/issues/315 -status: Last Call -last-call-deadline: 2024-11-30 +status: Final type: Standards Track category: ARC created: 2024-10-09