package tezos-protocol-015-PtLimaPt
Tezos protocol 015-PtLimaPt package
Install
Dune Dependency
Authors
Maintainers
Sources
tezos-octez-v20.1.tag.bz2
sha256=ddfb5076eeb0b32ac21c1eed44e8fc86a6743ef18ab23fff02d36e365bb73d61
sha512=d22a827df5146e0aa274df48bc2150b098177ff7e5eab52c6109e867eb0a1f0ec63e6bfbb0e3645a6c2112de3877c91a17df32ccbff301891ce4ba630c997a65
doc/src/tezos_raw_protocol_015_PtLimaPt/gas_input_size.ml.html
Source file gas_input_size.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
(*****************************************************************************) (* *) (* Open Source License *) (* Copyright (c) 2021-2022 Nomadic Labs <contact@nomadic-labs.com> *) (* *) (* Permission is hereby granted, free of charge, to any person obtaining a *) (* copy of this software and associated documentation files (the "Software"),*) (* to deal in the Software without restriction, including without limitation *) (* the rights to use, copy, modify, merge, publish, distribute, sublicense, *) (* and/or sell copies of the Software, and to permit persons to whom the *) (* Software is furnished to do so, subject to the following conditions: *) (* *) (* The above copyright notice and this permission notice shall be included *) (* in all copies or substantial portions of the Software. *) (* *) (* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR*) (* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *) (* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL *) (* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER*) (* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING *) (* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER *) (* DEALINGS IN THE SOFTWARE. *) (* *) (*****************************************************************************) include Gas_comparable_input_size let list (list : 'a Script_typed_ir.boxed_list) : t = list.Script_typed_ir.length let set (set : 'a Script_typed_ir.set) : t = let res = Script_int.to_int (Script_set.size set) in match res with None -> assert false | Some x -> x let map (map : ('a, 'b) Script_typed_ir.map) : t = let res = Script_int.to_int (Script_map.size map) in match res with None -> assert false | Some x -> x (* ------------------------------------------------------------------------- *) (* Micheline/Michelson-related *) let micheline_zero = {traversal = 0; int_bytes = 0; string_bytes = 0} let ( ++ ) x y = { traversal = x.traversal + y.traversal; int_bytes = x.int_bytes + y.int_bytes; string_bytes = x.string_bytes + y.string_bytes; } let node leaves = let r = List.fold_left ( ++ ) micheline_zero leaves in {r with traversal = r.traversal + 1} let rec of_micheline (x : ('a, 'b) Micheline.node) = match x with | Micheline.Int (_loc, z) -> let int_bytes = integer (Script_int.of_zint z) in {traversal = 1; int_bytes; string_bytes = 0} | Micheline.String (_loc, s) -> let string_bytes = String.length s in {traversal = 1; int_bytes = 0; string_bytes} | Micheline.Bytes (_loc, b) -> let string_bytes = bytes b in {traversal = 1; int_bytes = 0; string_bytes} | Micheline.Prim (_loc, _prim, subterms, _annot) -> node (List.map of_micheline subterms) | Micheline.Seq (_loc, subterms) -> node (List.map of_micheline subterms) (* ------------------------------------------------------------------------- *) (* Sapling-related *) let sapling_transaction_inputs : Alpha_context.Sapling.transaction -> t = fun tx -> List.length tx.inputs let sapling_transaction_outputs : Alpha_context.Sapling.transaction -> t = fun tx -> List.length tx.outputs let sapling_transaction_bound_data : Alpha_context.Sapling.transaction -> t = fun tx -> String.length tx.bound_data
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>