ton
ton copied to clipboard
func: stdlib: compute_data_size description mismatch
Apparently compute_data_size and compute_data_size? docblocks/signatures are mixed up
;;; A non-quiet version of [compute_data_size?] that throws a cell overflow exception (`8`) on failure.
(int, int, int, int) compute_data_size?(cell c, int max_cells) asm "CDATASIZEQ NULLSWAPIFNOT2 NULLSWAPIFNOT";
🔁
;;; Returns `(x, y, z, -1)` or `(null, null, null, 0)`.
;;; Recursively computes the count of distinct cells `x`, data bits `y`, and cell references `z`
;;; in the DAG rooted at `cell` [c], effectively returning the total storage used by this DAG taking into account
;;; the identification of equal cells.
;;; The values of `x`, `y`, and `z` are computed by a depth-first traversal of this DAG,
;;; with a hash table of visited cell hashes used to prevent visits of already-visited cells.
;;; The total count of visited cells `x` cannot exceed non-negative [max_cells];
;;; otherwise the computation is aborted before visiting the `(max_cells + 1)`-st cell and
;;; a zero flag is returned to indicate failure. If [c] is `null`, returns `x = y = z = 0`.
(int, int, int) compute_data_size(cell c, int max_cells) impure asm "CDATASIZE";
Taken from https://github.com/ton-blockchain/ton/blob/master/crypto/smartcont/stdlib.fc
Apparently
compute_data_sizeandcompute_data_size?docblocks/signatures are mixed up;;; A non-quiet version of [compute_data_size?] that throws a cell overflow exception (`8`) on failure. (int, int, int, int) compute_data_size?(cell c, int max_cells) asm "CDATASIZEQ NULLSWAPIFNOT2 NULLSWAPIFNOT";🔁
;;; Returns `(x, y, z, -1)` or `(null, null, null, 0)`. ;;; Recursively computes the count of distinct cells `x`, data bits `y`, and cell references `z` ;;; in the DAG rooted at `cell` [c], effectively returning the total storage used by this DAG taking into account ;;; the identification of equal cells. ;;; The values of `x`, `y`, and `z` are computed by a depth-first traversal of this DAG, ;;; with a hash table of visited cell hashes used to prevent visits of already-visited cells. ;;; The total count of visited cells `x` cannot exceed non-negative [max_cells]; ;;; otherwise the computation is aborted before visiting the `(max_cells + 1)`-st cell and ;;; a zero flag is returned to indicate failure. If [c] is `null`, returns `x = y = z = 0`. (int, int, int) compute_data_size(cell c, int max_cells) impure asm "CDATASIZE";Taken from https://github.com/ton-blockchain/ton/blob/master/crypto/smartcont/stdlib.fc