intrinsic.rs
1 // Copyright (C) 2019-2025 ADnet Contributors 2 // This file is part of the ADL library. 3 4 // The ADL library is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 9 // The ADL library is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 14 // You should have received a copy of the GNU General Public License 15 // along with the ADL library. If not, see <https://www.gnu.org/licenses/>. 16 17 use crate::{ArrayType, IntegerType, Type}; 18 19 use adl_span::{Span, Symbol, sym}; 20 21 use snarkvm::{ 22 prelude::LiteralType, 23 synthesizer::program::{CommitVariant, DeserializeVariant, ECDSAVerifyVariant, HashVariant, SerializeVariant}, 24 }; 25 26 /// An instrinsic operation directly implemented by the compiler. 27 #[derive(Clone, Debug, PartialEq, Eq)] 28 pub enum Intrinsic { 29 // ChaCha random value of type (LiteralType). 30 ChaChaRand(LiteralType), 31 // Commitment to a value using hash (HashVariant) returning value of type (LiteralType). 32 Commit(CommitVariant, LiteralType), 33 // ECDSA verify with hash (HashVariant) and the ETH variant (bool). 34 ECDSAVerify(ECDSAVerifyVariant), 35 // Hash function with variant (HashVariant) returning value of type (LiteralType). 36 Hash(HashVariant, Type), 37 38 MappingGet, 39 MappingGetOrUse, 40 MappingSet, 41 MappingRemove, 42 MappingContains, 43 44 OptionalUnwrap, 45 OptionalUnwrapOr, 46 47 VectorGet, 48 VectorSet, 49 VectorPush, 50 VectorLen, 51 VectorClear, 52 VectorPop, 53 VectorSwapRemove, 54 55 GroupToXCoordinate, 56 GroupToYCoordinate, 57 GroupGen, 58 59 // Schnorr signature verification. 60 SignatureVerify, 61 62 FutureAwait, 63 64 ProgramChecksum, 65 ProgramEdition, 66 ProgramOwner, 67 68 Serialize(SerializeVariant), 69 70 // Note. `Deserialize` cannot be instantiated via `from_symbols` as it requires a type argument. 71 Deserialize(DeserializeVariant, Type), 72 73 SelfAddress, 74 SelfCaller, 75 SelfChecksum, 76 SelfEdition, 77 SelfId, 78 SelfProgramOwner, 79 SelfSigner, 80 BlockHeight, 81 BlockTimestamp, 82 NetworkId, 83 84 CheatCodePrintMapping, 85 CheatCodeSetBlockHeight, 86 CheatCodeSetBlockTimestamp, 87 CheatCodeSetSigner, 88 } 89 90 impl Intrinsic { 91 /// Returns a `Intrinsic` from a single symbol. 92 // TODO: turn into From implementation when old syntax is deprecated 93 #[rustfmt::skip] 94 pub fn from_symbol(name: Symbol, type_parameters: &[(Type, Span)]) -> Option<Self> { 95 Some(match name { 96 sym::_self_address => Self::SelfAddress, 97 sym::_self_caller => Self::SelfCaller, 98 sym::_self_checksum => Self::SelfChecksum, 99 sym::_self_edition => Self::SelfEdition, 100 sym::_self_id => Self::SelfId, 101 sym::_self_program_owner => Self::SelfProgramOwner, 102 sym::_self_signer => Self::SelfSigner, 103 sym::_block_height => Self::BlockHeight, 104 sym::_block_timestamp => Self::BlockTimestamp, 105 sym::_network_id => Self::NetworkId, 106 sym::_deserialize_from_bits => Self::Deserialize(DeserializeVariant::FromBits, type_parameters[0].0.clone()), 107 sym::_deserialize_from_bits_raw => Self::Deserialize(DeserializeVariant::FromBitsRaw, type_parameters[0].0.clone()), 108 sym::_group_gen => Self::GroupGen, 109 sym::_chacha_rand_address => Self::ChaChaRand(LiteralType::Address), 110 sym::_chacha_rand_bool => Self::ChaChaRand(LiteralType::Boolean), 111 sym::_chacha_rand_field => Self::ChaChaRand(LiteralType::Field), 112 sym::_chacha_rand_group => Self::ChaChaRand(LiteralType::Group), 113 sym::_chacha_rand_i8 => Self::ChaChaRand(LiteralType::I8), 114 sym::_chacha_rand_i16 => Self::ChaChaRand(LiteralType::I16), 115 sym::_chacha_rand_i32 => Self::ChaChaRand(LiteralType::I32), 116 sym::_chacha_rand_i64 => Self::ChaChaRand(LiteralType::I64), 117 sym::_chacha_rand_i128 => Self::ChaChaRand(LiteralType::I128), 118 sym::_chacha_rand_u8 => Self::ChaChaRand(LiteralType::U8), 119 sym::_chacha_rand_u16 => Self::ChaChaRand(LiteralType::U16), 120 sym::_chacha_rand_u32 => Self::ChaChaRand(LiteralType::U32), 121 sym::_chacha_rand_u64 => Self::ChaChaRand(LiteralType::U64), 122 sym::_chacha_rand_u128 => Self::ChaChaRand(LiteralType::U128), 123 sym::_chacha_rand_scalar => Self::ChaChaRand(LiteralType::Scalar), 124 sym::_bhp256_commit_to_address => Self::Commit(CommitVariant::CommitBHP256, LiteralType::Address), 125 sym::_bhp256_commit_to_field => Self::Commit(CommitVariant::CommitBHP256, LiteralType::Field), 126 sym::_bhp256_commit_to_group => Self::Commit(CommitVariant::CommitBHP256, LiteralType::Group), 127 sym::_bhp512_commit_to_address => Self::Commit(CommitVariant::CommitBHP512, LiteralType::Address), 128 sym::_bhp512_commit_to_field => Self::Commit(CommitVariant::CommitBHP512, LiteralType::Field), 129 sym::_bhp512_commit_to_group => Self::Commit(CommitVariant::CommitBHP512, LiteralType::Group), 130 sym::_bhp768_commit_to_address => Self::Commit(CommitVariant::CommitBHP768, LiteralType::Address), 131 sym::_bhp768_commit_to_field => Self::Commit(CommitVariant::CommitBHP768, LiteralType::Field), 132 sym::_bhp768_commit_to_group => Self::Commit(CommitVariant::CommitBHP768, LiteralType::Group), 133 sym::_bhp1024_commit_to_address => Self::Commit(CommitVariant::CommitBHP1024, LiteralType::Address), 134 sym::_bhp1024_commit_to_field => Self::Commit(CommitVariant::CommitBHP1024, LiteralType::Field), 135 sym::_bhp1024_commit_to_group => Self::Commit(CommitVariant::CommitBHP1024, LiteralType::Group), 136 sym::_pedersen64_commit_to_address => Self::Commit(CommitVariant::CommitPED64, LiteralType::Address), 137 sym::_pedersen64_commit_to_field => Self::Commit(CommitVariant::CommitPED64, LiteralType::Field), 138 sym::_pedersen64_commit_to_group => Self::Commit(CommitVariant::CommitPED64, LiteralType::Group), 139 sym::_pedersen128_commit_to_address => Self::Commit(CommitVariant::CommitPED128, LiteralType::Address), 140 sym::_pedersen128_commit_to_field => Self::Commit(CommitVariant::CommitPED128, LiteralType::Field), 141 sym::_pedersen128_commit_to_group => Self::Commit(CommitVariant::CommitPED128, LiteralType::Group), 142 sym::_bhp256_hash_to_address => Self::Hash(HashVariant::HashBHP256, Type::Address), 143 sym::_bhp256_hash_to_field => Self::Hash(HashVariant::HashBHP256, Type::Field), 144 sym::_bhp256_hash_to_group => Self::Hash(HashVariant::HashBHP256, Type::Group), 145 sym::_bhp256_hash_to_i8 => Self::Hash(HashVariant::HashBHP256, Type::Integer(IntegerType::I8)), 146 sym::_bhp256_hash_to_i16 => Self::Hash(HashVariant::HashBHP256, Type::Integer(IntegerType::I16)), 147 sym::_bhp256_hash_to_i32 => Self::Hash(HashVariant::HashBHP256, Type::Integer(IntegerType::I32)), 148 sym::_bhp256_hash_to_i64 => Self::Hash(HashVariant::HashBHP256, Type::Integer(IntegerType::I64)), 149 sym::_bhp256_hash_to_i128 => Self::Hash(HashVariant::HashBHP256, Type::Integer(IntegerType::I128)), 150 sym::_bhp256_hash_to_u8 => Self::Hash(HashVariant::HashBHP256, Type::Integer(IntegerType::U8)), 151 sym::_bhp256_hash_to_u16 => Self::Hash(HashVariant::HashBHP256, Type::Integer(IntegerType::U16)), 152 sym::_bhp256_hash_to_u32 => Self::Hash(HashVariant::HashBHP256, Type::Integer(IntegerType::U32)), 153 sym::_bhp256_hash_to_u64 => Self::Hash(HashVariant::HashBHP256, Type::Integer(IntegerType::U64)), 154 sym::_bhp256_hash_to_u128 => Self::Hash(HashVariant::HashBHP256, Type::Integer(IntegerType::U128)), 155 sym::_bhp256_hash_to_scalar => Self::Hash(HashVariant::HashBHP256, Type::Scalar), 156 sym::_bhp256_hash_to_address_raw => Self::Hash(HashVariant::HashBHP256Raw, Type::Address), 157 sym::_bhp256_hash_to_field_raw => Self::Hash(HashVariant::HashBHP256Raw, Type::Field), 158 sym::_bhp256_hash_to_group_raw => Self::Hash(HashVariant::HashBHP256Raw, Type::Group), 159 sym::_bhp256_hash_to_i8_raw => Self::Hash(HashVariant::HashBHP256Raw, Type::Integer(IntegerType::I8)), 160 sym::_bhp256_hash_to_i16_raw => Self::Hash(HashVariant::HashBHP256Raw, Type::Integer(IntegerType::I16)), 161 sym::_bhp256_hash_to_i32_raw => Self::Hash(HashVariant::HashBHP256Raw, Type::Integer(IntegerType::I32)), 162 sym::_bhp256_hash_to_i64_raw => Self::Hash(HashVariant::HashBHP256Raw, Type::Integer(IntegerType::I64)), 163 sym::_bhp256_hash_to_i128_raw => Self::Hash(HashVariant::HashBHP256Raw, Type::Integer(IntegerType::I128)), 164 sym::_bhp256_hash_to_u8_raw => Self::Hash(HashVariant::HashBHP256Raw, Type::Integer(IntegerType::U8)), 165 sym::_bhp256_hash_to_u16_raw => Self::Hash(HashVariant::HashBHP256Raw, Type::Integer(IntegerType::U16)), 166 sym::_bhp256_hash_to_u32_raw => Self::Hash(HashVariant::HashBHP256Raw, Type::Integer(IntegerType::U32)), 167 sym::_bhp256_hash_to_u64_raw => Self::Hash(HashVariant::HashBHP256Raw, Type::Integer(IntegerType::U64)), 168 sym::_bhp256_hash_to_u128_raw => Self::Hash(HashVariant::HashBHP256Raw, Type::Integer(IntegerType::U128)), 169 sym::_bhp256_hash_to_scalar_raw => Self::Hash(HashVariant::HashBHP256Raw, Type::Scalar), 170 171 sym::_bhp512_hash_to_address => Self::Hash(HashVariant::HashBHP512, Type::Address), 172 sym::_bhp512_hash_to_field => Self::Hash(HashVariant::HashBHP512, Type::Field), 173 sym::_bhp512_hash_to_group => Self::Hash(HashVariant::HashBHP512, Type::Group), 174 sym::_bhp512_hash_to_i8 => Self::Hash(HashVariant::HashBHP512, Type::Integer(IntegerType::I8)), 175 sym::_bhp512_hash_to_i16 => Self::Hash(HashVariant::HashBHP512, Type::Integer(IntegerType::I16)), 176 sym::_bhp512_hash_to_i32 => Self::Hash(HashVariant::HashBHP512, Type::Integer(IntegerType::I32)), 177 sym::_bhp512_hash_to_i64 => Self::Hash(HashVariant::HashBHP512, Type::Integer(IntegerType::I64)), 178 sym::_bhp512_hash_to_i128 => Self::Hash(HashVariant::HashBHP512, Type::Integer(IntegerType::I128)), 179 sym::_bhp512_hash_to_u8 => Self::Hash(HashVariant::HashBHP512, Type::Integer(IntegerType::U8)), 180 sym::_bhp512_hash_to_u16 => Self::Hash(HashVariant::HashBHP512, Type::Integer(IntegerType::U16)), 181 sym::_bhp512_hash_to_u32 => Self::Hash(HashVariant::HashBHP512, Type::Integer(IntegerType::U32)), 182 sym::_bhp512_hash_to_u64 => Self::Hash(HashVariant::HashBHP512, Type::Integer(IntegerType::U64)), 183 sym::_bhp512_hash_to_u128 => Self::Hash(HashVariant::HashBHP512, Type::Integer(IntegerType::U128)), 184 sym::_bhp512_hash_to_scalar => Self::Hash(HashVariant::HashBHP512, Type::Scalar), 185 sym::_bhp512_hash_to_address_raw => Self::Hash(HashVariant::HashBHP512Raw, Type::Address), 186 sym::_bhp512_hash_to_field_raw => Self::Hash(HashVariant::HashBHP512Raw, Type::Field), 187 sym::_bhp512_hash_to_group_raw => Self::Hash(HashVariant::HashBHP512Raw, Type::Group), 188 sym::_bhp512_hash_to_i8_raw => Self::Hash(HashVariant::HashBHP512Raw, Type::Integer(IntegerType::I8)), 189 sym::_bhp512_hash_to_i16_raw => Self::Hash(HashVariant::HashBHP512Raw, Type::Integer(IntegerType::I16)), 190 sym::_bhp512_hash_to_i32_raw => Self::Hash(HashVariant::HashBHP512Raw, Type::Integer(IntegerType::I32)), 191 sym::_bhp512_hash_to_i64_raw => Self::Hash(HashVariant::HashBHP512Raw, Type::Integer(IntegerType::I64)), 192 sym::_bhp512_hash_to_i128_raw => Self::Hash(HashVariant::HashBHP512Raw, Type::Integer(IntegerType::I128)), 193 sym::_bhp512_hash_to_u8_raw => Self::Hash(HashVariant::HashBHP512Raw, Type::Integer(IntegerType::U8)), 194 sym::_bhp512_hash_to_u16_raw => Self::Hash(HashVariant::HashBHP512Raw, Type::Integer(IntegerType::U16)), 195 sym::_bhp512_hash_to_u32_raw => Self::Hash(HashVariant::HashBHP512Raw, Type::Integer(IntegerType::U32)), 196 sym::_bhp512_hash_to_u64_raw => Self::Hash(HashVariant::HashBHP512Raw, Type::Integer(IntegerType::U64)), 197 sym::_bhp512_hash_to_u128_raw => Self::Hash(HashVariant::HashBHP512Raw, Type::Integer(IntegerType::U128)), 198 sym::_bhp512_hash_to_scalar_raw => Self::Hash(HashVariant::HashBHP512Raw, Type::Scalar), 199 200 sym::_bhp768_hash_to_address => Self::Hash(HashVariant::HashBHP768, Type::Address), 201 sym::_bhp768_hash_to_field => Self::Hash(HashVariant::HashBHP768, Type::Field), 202 sym::_bhp768_hash_to_group => Self::Hash(HashVariant::HashBHP768, Type::Group), 203 sym::_bhp768_hash_to_i8 => Self::Hash(HashVariant::HashBHP768, Type::Integer(IntegerType::I8)), 204 sym::_bhp768_hash_to_i16 => Self::Hash(HashVariant::HashBHP768, Type::Integer(IntegerType::I16)), 205 sym::_bhp768_hash_to_i32 => Self::Hash(HashVariant::HashBHP768, Type::Integer(IntegerType::I32)), 206 sym::_bhp768_hash_to_i64 => Self::Hash(HashVariant::HashBHP768, Type::Integer(IntegerType::I64)), 207 sym::_bhp768_hash_to_i128 => Self::Hash(HashVariant::HashBHP768, Type::Integer(IntegerType::I128)), 208 sym::_bhp768_hash_to_u8 => Self::Hash(HashVariant::HashBHP768, Type::Integer(IntegerType::U8)), 209 sym::_bhp768_hash_to_u16 => Self::Hash(HashVariant::HashBHP768, Type::Integer(IntegerType::U16)), 210 sym::_bhp768_hash_to_u32 => Self::Hash(HashVariant::HashBHP768, Type::Integer(IntegerType::U32)), 211 sym::_bhp768_hash_to_u64 => Self::Hash(HashVariant::HashBHP768, Type::Integer(IntegerType::U64)), 212 sym::_bhp768_hash_to_u128 => Self::Hash(HashVariant::HashBHP768, Type::Integer(IntegerType::U128)), 213 sym::_bhp768_hash_to_scalar => Self::Hash(HashVariant::HashBHP768, Type::Scalar), 214 sym::_bhp768_hash_to_address_raw => Self::Hash(HashVariant::HashBHP768Raw, Type::Address), 215 sym::_bhp768_hash_to_field_raw => Self::Hash(HashVariant::HashBHP768Raw, Type::Field), 216 sym::_bhp768_hash_to_group_raw => Self::Hash(HashVariant::HashBHP768Raw, Type::Group), 217 sym::_bhp768_hash_to_i8_raw => Self::Hash(HashVariant::HashBHP768Raw, Type::Integer(IntegerType::I8)), 218 sym::_bhp768_hash_to_i16_raw => Self::Hash(HashVariant::HashBHP768Raw, Type::Integer(IntegerType::I16)), 219 sym::_bhp768_hash_to_i32_raw => Self::Hash(HashVariant::HashBHP768Raw, Type::Integer(IntegerType::I32)), 220 sym::_bhp768_hash_to_i64_raw => Self::Hash(HashVariant::HashBHP768Raw, Type::Integer(IntegerType::I64)), 221 sym::_bhp768_hash_to_i128_raw => Self::Hash(HashVariant::HashBHP768Raw, Type::Integer(IntegerType::I128)), 222 sym::_bhp768_hash_to_u8_raw => Self::Hash(HashVariant::HashBHP768Raw, Type::Integer(IntegerType::U8)), 223 sym::_bhp768_hash_to_u16_raw => Self::Hash(HashVariant::HashBHP768Raw, Type::Integer(IntegerType::U16)), 224 sym::_bhp768_hash_to_u32_raw => Self::Hash(HashVariant::HashBHP768Raw, Type::Integer(IntegerType::U32)), 225 sym::_bhp768_hash_to_u64_raw => Self::Hash(HashVariant::HashBHP768Raw, Type::Integer(IntegerType::U64)), 226 sym::_bhp768_hash_to_u128_raw => Self::Hash(HashVariant::HashBHP768Raw, Type::Integer(IntegerType::U128)), 227 sym::_bhp768_hash_to_scalar_raw => Self::Hash(HashVariant::HashBHP768Raw, Type::Scalar), 228 229 sym::_bhp1024_hash_to_address => Self::Hash(HashVariant::HashBHP1024, Type::Address), 230 sym::_bhp1024_hash_to_field => Self::Hash(HashVariant::HashBHP1024, Type::Field), 231 sym::_bhp1024_hash_to_group => Self::Hash(HashVariant::HashBHP1024, Type::Group), 232 sym::_bhp1024_hash_to_i8 => Self::Hash(HashVariant::HashBHP1024, Type::Integer(IntegerType::I8)), 233 sym::_bhp1024_hash_to_i16 => Self::Hash(HashVariant::HashBHP1024, Type::Integer(IntegerType::I16)), 234 sym::_bhp1024_hash_to_i32 => Self::Hash(HashVariant::HashBHP1024, Type::Integer(IntegerType::I32)), 235 sym::_bhp1024_hash_to_i64 => Self::Hash(HashVariant::HashBHP1024, Type::Integer(IntegerType::I64)), 236 sym::_bhp1024_hash_to_i128 => Self::Hash(HashVariant::HashBHP1024, Type::Integer(IntegerType::I128)), 237 sym::_bhp1024_hash_to_u8 => Self::Hash(HashVariant::HashBHP1024, Type::Integer(IntegerType::U8)), 238 sym::_bhp1024_hash_to_u16 => Self::Hash(HashVariant::HashBHP1024, Type::Integer(IntegerType::U16)), 239 sym::_bhp1024_hash_to_u32 => Self::Hash(HashVariant::HashBHP1024, Type::Integer(IntegerType::U32)), 240 sym::_bhp1024_hash_to_u64 => Self::Hash(HashVariant::HashBHP1024, Type::Integer(IntegerType::U64)), 241 sym::_bhp1024_hash_to_u128 => Self::Hash(HashVariant::HashBHP1024, Type::Integer(IntegerType::U128)), 242 sym::_bhp1024_hash_to_scalar => Self::Hash(HashVariant::HashBHP1024, Type::Scalar), 243 sym::_bhp1024_hash_to_address_raw => Self::Hash(HashVariant::HashBHP1024Raw, Type::Address), 244 sym::_bhp1024_hash_to_field_raw => Self::Hash(HashVariant::HashBHP1024Raw, Type::Field), 245 sym::_bhp1024_hash_to_group_raw => Self::Hash(HashVariant::HashBHP1024Raw, Type::Group), 246 sym::_bhp1024_hash_to_i8_raw => Self::Hash(HashVariant::HashBHP1024Raw, Type::Integer(IntegerType::I8)), 247 sym::_bhp1024_hash_to_i16_raw => Self::Hash(HashVariant::HashBHP1024Raw, Type::Integer(IntegerType::I16)), 248 sym::_bhp1024_hash_to_i32_raw => Self::Hash(HashVariant::HashBHP1024Raw, Type::Integer(IntegerType::I32)), 249 sym::_bhp1024_hash_to_i64_raw => Self::Hash(HashVariant::HashBHP1024Raw, Type::Integer(IntegerType::I64)), 250 sym::_bhp1024_hash_to_i128_raw => Self::Hash(HashVariant::HashBHP1024Raw, Type::Integer(IntegerType::I128)), 251 sym::_bhp1024_hash_to_u8_raw => Self::Hash(HashVariant::HashBHP1024Raw, Type::Integer(IntegerType::U8)), 252 sym::_bhp1024_hash_to_u16_raw => Self::Hash(HashVariant::HashBHP1024Raw, Type::Integer(IntegerType::U16)), 253 sym::_bhp1024_hash_to_u32_raw => Self::Hash(HashVariant::HashBHP1024Raw, Type::Integer(IntegerType::U32)), 254 sym::_bhp1024_hash_to_u64_raw => Self::Hash(HashVariant::HashBHP1024Raw, Type::Integer(IntegerType::U64)), 255 sym::_bhp1024_hash_to_u128_raw => Self::Hash(HashVariant::HashBHP1024Raw, Type::Integer(IntegerType::U128)), 256 sym::_bhp1024_hash_to_scalar_raw => Self::Hash(HashVariant::HashBHP1024Raw, Type::Scalar), 257 258 sym::_keccak256_hash_to_address => Self::Hash(HashVariant::HashKeccak256, Type::Address), 259 sym::_keccak256_hash_to_field => Self::Hash(HashVariant::HashKeccak256, Type::Field), 260 sym::_keccak256_hash_to_group => Self::Hash(HashVariant::HashKeccak256, Type::Group), 261 sym::_keccak256_hash_to_i8 => Self::Hash(HashVariant::HashKeccak256, Type::Integer(IntegerType::I8)), 262 sym::_keccak256_hash_to_i16 => Self::Hash(HashVariant::HashKeccak256, Type::Integer(IntegerType::I16)), 263 sym::_keccak256_hash_to_i32 => Self::Hash(HashVariant::HashKeccak256, Type::Integer(IntegerType::I32)), 264 sym::_keccak256_hash_to_i64 => Self::Hash(HashVariant::HashKeccak256, Type::Integer(IntegerType::I64)), 265 sym::_keccak256_hash_to_i128 => Self::Hash(HashVariant::HashKeccak256, Type::Integer(IntegerType::I128)), 266 sym::_keccak256_hash_to_u8 => Self::Hash(HashVariant::HashKeccak256, Type::Integer(IntegerType::U8)), 267 sym::_keccak256_hash_to_u16 => Self::Hash(HashVariant::HashKeccak256, Type::Integer(IntegerType::U16)), 268 sym::_keccak256_hash_to_u32 => Self::Hash(HashVariant::HashKeccak256, Type::Integer(IntegerType::U32)), 269 sym::_keccak256_hash_to_u64 => Self::Hash(HashVariant::HashKeccak256, Type::Integer(IntegerType::U64)), 270 sym::_keccak256_hash_to_u128 => Self::Hash(HashVariant::HashKeccak256, Type::Integer(IntegerType::U128)), 271 sym::_keccak256_hash_to_scalar => Self::Hash(HashVariant::HashKeccak256, Type::Scalar), 272 sym::_keccak256_hash_to_address_raw => Self::Hash(HashVariant::HashKeccak256Raw, Type::Address), 273 sym::_keccak256_hash_to_field_raw => Self::Hash(HashVariant::HashKeccak256Raw, Type::Field), 274 sym::_keccak256_hash_to_group_raw => Self::Hash(HashVariant::HashKeccak256Raw, Type::Group), 275 sym::_keccak256_hash_to_i8_raw => Self::Hash(HashVariant::HashKeccak256Raw, Type::Integer(IntegerType::I8)), 276 sym::_keccak256_hash_to_i16_raw => Self::Hash(HashVariant::HashKeccak256Raw, Type::Integer(IntegerType::I16)), 277 sym::_keccak256_hash_to_i32_raw => Self::Hash(HashVariant::HashKeccak256Raw, Type::Integer(IntegerType::I32)), 278 sym::_keccak256_hash_to_i64_raw => Self::Hash(HashVariant::HashKeccak256Raw, Type::Integer(IntegerType::I64)), 279 sym::_keccak256_hash_to_i128_raw => Self::Hash(HashVariant::HashKeccak256Raw, Type::Integer(IntegerType::I128)), 280 sym::_keccak256_hash_to_u8_raw => Self::Hash(HashVariant::HashKeccak256Raw, Type::Integer(IntegerType::U8)), 281 sym::_keccak256_hash_to_u16_raw => Self::Hash(HashVariant::HashKeccak256Raw, Type::Integer(IntegerType::U16)), 282 sym::_keccak256_hash_to_u32_raw => Self::Hash(HashVariant::HashKeccak256Raw, Type::Integer(IntegerType::U32)), 283 sym::_keccak256_hash_to_u64_raw => Self::Hash(HashVariant::HashKeccak256Raw, Type::Integer(IntegerType::U64)), 284 sym::_keccak256_hash_to_u128_raw => Self::Hash(HashVariant::HashKeccak256Raw, Type::Integer(IntegerType::U128)), 285 sym::_keccak256_hash_to_scalar_raw => Self::Hash(HashVariant::HashKeccak256Raw, Type::Scalar), 286 sym::_keccak256_hash_to_bits => Self::Hash(HashVariant::HashKeccak256Native, Type::Array(ArrayType::bit_array(256))), 287 sym::_keccak256_hash_to_bits_raw => Self::Hash(HashVariant::HashKeccak256NativeRaw, Type::Array(ArrayType::bit_array(256))), 288 289 sym::_keccak384_hash_to_address => Self::Hash(HashVariant::HashKeccak384, Type::Address), 290 sym::_keccak384_hash_to_field => Self::Hash(HashVariant::HashKeccak384, Type::Field), 291 sym::_keccak384_hash_to_group => Self::Hash(HashVariant::HashKeccak384, Type::Group), 292 sym::_keccak384_hash_to_i8 => Self::Hash(HashVariant::HashKeccak384, Type::Integer(IntegerType::I8)), 293 sym::_keccak384_hash_to_i16 => Self::Hash(HashVariant::HashKeccak384, Type::Integer(IntegerType::I16)), 294 sym::_keccak384_hash_to_i32 => Self::Hash(HashVariant::HashKeccak384, Type::Integer(IntegerType::I32)), 295 sym::_keccak384_hash_to_i64 => Self::Hash(HashVariant::HashKeccak384, Type::Integer(IntegerType::I64)), 296 sym::_keccak384_hash_to_i128 => Self::Hash(HashVariant::HashKeccak384, Type::Integer(IntegerType::I128)), 297 sym::_keccak384_hash_to_u8 => Self::Hash(HashVariant::HashKeccak384, Type::Integer(IntegerType::U8)), 298 sym::_keccak384_hash_to_u16 => Self::Hash(HashVariant::HashKeccak384, Type::Integer(IntegerType::U16)), 299 sym::_keccak384_hash_to_u32 => Self::Hash(HashVariant::HashKeccak384, Type::Integer(IntegerType::U32)), 300 sym::_keccak384_hash_to_u64 => Self::Hash(HashVariant::HashKeccak384, Type::Integer(IntegerType::U64)), 301 sym::_keccak384_hash_to_u128 => Self::Hash(HashVariant::HashKeccak384, Type::Integer(IntegerType::U128)), 302 sym::_keccak384_hash_to_scalar => Self::Hash(HashVariant::HashKeccak384, Type::Scalar), 303 sym::_keccak384_hash_to_address_raw => Self::Hash(HashVariant::HashKeccak384Raw, Type::Address), 304 sym::_keccak384_hash_to_field_raw => Self::Hash(HashVariant::HashKeccak384Raw, Type::Field), 305 sym::_keccak384_hash_to_group_raw => Self::Hash(HashVariant::HashKeccak384Raw, Type::Group), 306 sym::_keccak384_hash_to_i8_raw => Self::Hash(HashVariant::HashKeccak384Raw, Type::Integer(IntegerType::I8)), 307 sym::_keccak384_hash_to_i16_raw => Self::Hash(HashVariant::HashKeccak384Raw, Type::Integer(IntegerType::I16)), 308 sym::_keccak384_hash_to_i32_raw => Self::Hash(HashVariant::HashKeccak384Raw, Type::Integer(IntegerType::I32)), 309 sym::_keccak384_hash_to_i64_raw => Self::Hash(HashVariant::HashKeccak384Raw, Type::Integer(IntegerType::I64)), 310 sym::_keccak384_hash_to_i128_raw => Self::Hash(HashVariant::HashKeccak384Raw, Type::Integer(IntegerType::I128)), 311 sym::_keccak384_hash_to_u8_raw => Self::Hash(HashVariant::HashKeccak384Raw, Type::Integer(IntegerType::U8)), 312 sym::_keccak384_hash_to_u16_raw => Self::Hash(HashVariant::HashKeccak384Raw, Type::Integer(IntegerType::U16)), 313 sym::_keccak384_hash_to_u32_raw => Self::Hash(HashVariant::HashKeccak384Raw, Type::Integer(IntegerType::U32)), 314 sym::_keccak384_hash_to_u64_raw => Self::Hash(HashVariant::HashKeccak384Raw, Type::Integer(IntegerType::U64)), 315 sym::_keccak384_hash_to_u128_raw => Self::Hash(HashVariant::HashKeccak384Raw, Type::Integer(IntegerType::U128)), 316 sym::_keccak384_hash_to_scalar_raw => Self::Hash(HashVariant::HashKeccak384Raw, Type::Scalar), 317 sym::_keccak384_hash_to_bits => Self::Hash(HashVariant::HashKeccak384Native, Type::Array(ArrayType::bit_array(384))), 318 sym::_keccak384_hash_to_bits_raw => Self::Hash(HashVariant::HashKeccak384NativeRaw, Type::Array(ArrayType::bit_array(384))), 319 320 sym::_keccak512_hash_to_address => Self::Hash(HashVariant::HashKeccak512, Type::Address), 321 sym::_keccak512_hash_to_field => Self::Hash(HashVariant::HashKeccak512, Type::Field), 322 sym::_keccak512_hash_to_group => Self::Hash(HashVariant::HashKeccak512, Type::Group), 323 sym::_keccak512_hash_to_i8 => Self::Hash(HashVariant::HashKeccak512, Type::Integer(IntegerType::I8)), 324 sym::_keccak512_hash_to_i16 => Self::Hash(HashVariant::HashKeccak512, Type::Integer(IntegerType::I16)), 325 sym::_keccak512_hash_to_i32 => Self::Hash(HashVariant::HashKeccak512, Type::Integer(IntegerType::I32)), 326 sym::_keccak512_hash_to_i64 => Self::Hash(HashVariant::HashKeccak512, Type::Integer(IntegerType::I64)), 327 sym::_keccak512_hash_to_i128 => Self::Hash(HashVariant::HashKeccak512, Type::Integer(IntegerType::I128)), 328 sym::_keccak512_hash_to_u8 => Self::Hash(HashVariant::HashKeccak512, Type::Integer(IntegerType::U8)), 329 sym::_keccak512_hash_to_u16 => Self::Hash(HashVariant::HashKeccak512, Type::Integer(IntegerType::U16)), 330 sym::_keccak512_hash_to_u32 => Self::Hash(HashVariant::HashKeccak512, Type::Integer(IntegerType::U32)), 331 sym::_keccak512_hash_to_u64 => Self::Hash(HashVariant::HashKeccak512, Type::Integer(IntegerType::U64)), 332 sym::_keccak512_hash_to_u128 => Self::Hash(HashVariant::HashKeccak512, Type::Integer(IntegerType::U128)), 333 sym::_keccak512_hash_to_scalar => Self::Hash(HashVariant::HashKeccak512, Type::Scalar), 334 sym::_keccak512_hash_to_address_raw => Self::Hash(HashVariant::HashKeccak512Raw, Type::Address), 335 sym::_keccak512_hash_to_field_raw => Self::Hash(HashVariant::HashKeccak512Raw, Type::Field), 336 sym::_keccak512_hash_to_group_raw => Self::Hash(HashVariant::HashKeccak512Raw, Type::Group), 337 sym::_keccak512_hash_to_i8_raw => Self::Hash(HashVariant::HashKeccak512Raw, Type::Integer(IntegerType::I8)), 338 sym::_keccak512_hash_to_i16_raw => Self::Hash(HashVariant::HashKeccak512Raw, Type::Integer(IntegerType::I16)), 339 sym::_keccak512_hash_to_i32_raw => Self::Hash(HashVariant::HashKeccak512Raw, Type::Integer(IntegerType::I32)), 340 sym::_keccak512_hash_to_i64_raw => Self::Hash(HashVariant::HashKeccak512Raw, Type::Integer(IntegerType::I64)), 341 sym::_keccak512_hash_to_i128_raw => Self::Hash(HashVariant::HashKeccak512Raw, Type::Integer(IntegerType::I128)), 342 sym::_keccak512_hash_to_u8_raw => Self::Hash(HashVariant::HashKeccak512Raw, Type::Integer(IntegerType::U8)), 343 sym::_keccak512_hash_to_u16_raw => Self::Hash(HashVariant::HashKeccak512Raw, Type::Integer(IntegerType::U16)), 344 sym::_keccak512_hash_to_u32_raw => Self::Hash(HashVariant::HashKeccak512Raw, Type::Integer(IntegerType::U32)), 345 sym::_keccak512_hash_to_u64_raw => Self::Hash(HashVariant::HashKeccak512Raw, Type::Integer(IntegerType::U64)), 346 sym::_keccak512_hash_to_u128_raw => Self::Hash(HashVariant::HashKeccak512Raw, Type::Integer(IntegerType::U128)), 347 sym::_keccak512_hash_to_scalar_raw => Self::Hash(HashVariant::HashKeccak512Raw, Type::Scalar), 348 sym::_keccak512_hash_to_bits => Self::Hash(HashVariant::HashKeccak512Native, Type::Array(ArrayType::bit_array(512))), 349 sym::_keccak512_hash_to_bits_raw => Self::Hash(HashVariant::HashKeccak512NativeRaw, Type::Array(ArrayType::bit_array(512))), 350 351 sym::_pedersen64_hash_to_address => Self::Hash(HashVariant::HashPED64, Type::Address), 352 sym::_pedersen64_hash_to_field => Self::Hash(HashVariant::HashPED64, Type::Field), 353 sym::_pedersen64_hash_to_group => Self::Hash(HashVariant::HashPED64, Type::Group), 354 sym::_pedersen64_hash_to_i8 => Self::Hash(HashVariant::HashPED64, Type::Integer(IntegerType::I8)), 355 sym::_pedersen64_hash_to_i16 => Self::Hash(HashVariant::HashPED64, Type::Integer(IntegerType::I16)), 356 sym::_pedersen64_hash_to_i32 => Self::Hash(HashVariant::HashPED64, Type::Integer(IntegerType::I32)), 357 sym::_pedersen64_hash_to_i64 => Self::Hash(HashVariant::HashPED64, Type::Integer(IntegerType::I64)), 358 sym::_pedersen64_hash_to_i128 => Self::Hash(HashVariant::HashPED64, Type::Integer(IntegerType::I128)), 359 sym::_pedersen64_hash_to_u8 => Self::Hash(HashVariant::HashPED64, Type::Integer(IntegerType::U8)), 360 sym::_pedersen64_hash_to_u16 => Self::Hash(HashVariant::HashPED64, Type::Integer(IntegerType::U16)), 361 sym::_pedersen64_hash_to_u32 => Self::Hash(HashVariant::HashPED64, Type::Integer(IntegerType::U32)), 362 sym::_pedersen64_hash_to_u64 => Self::Hash(HashVariant::HashPED64, Type::Integer(IntegerType::U64)), 363 sym::_pedersen64_hash_to_u128 => Self::Hash(HashVariant::HashPED64, Type::Integer(IntegerType::U128)), 364 sym::_pedersen64_hash_to_scalar => Self::Hash(HashVariant::HashPED64, Type::Scalar), 365 sym::_pedersen64_hash_to_address_raw => Self::Hash(HashVariant::HashPED64Raw, Type::Address), 366 sym::_pedersen64_hash_to_field_raw => Self::Hash(HashVariant::HashPED64Raw, Type::Field), 367 sym::_pedersen64_hash_to_group_raw => Self::Hash(HashVariant::HashPED64Raw, Type::Group), 368 sym::_pedersen64_hash_to_i8_raw => Self::Hash(HashVariant::HashPED64Raw, Type::Integer(IntegerType::I8)), 369 sym::_pedersen64_hash_to_i16_raw => Self::Hash(HashVariant::HashPED64Raw, Type::Integer(IntegerType::I16)), 370 sym::_pedersen64_hash_to_i32_raw => Self::Hash(HashVariant::HashPED64Raw, Type::Integer(IntegerType::I32)), 371 sym::_pedersen64_hash_to_i64_raw => Self::Hash(HashVariant::HashPED64Raw, Type::Integer(IntegerType::I64)), 372 sym::_pedersen64_hash_to_i128_raw => Self::Hash(HashVariant::HashPED64Raw, Type::Integer(IntegerType::I128)), 373 sym::_pedersen64_hash_to_u8_raw => Self::Hash(HashVariant::HashPED64Raw, Type::Integer(IntegerType::U8)), 374 sym::_pedersen64_hash_to_u16_raw => Self::Hash(HashVariant::HashPED64Raw, Type::Integer(IntegerType::U16)), 375 sym::_pedersen64_hash_to_u32_raw => Self::Hash(HashVariant::HashPED64Raw, Type::Integer(IntegerType::U32)), 376 sym::_pedersen64_hash_to_u64_raw => Self::Hash(HashVariant::HashPED64Raw, Type::Integer(IntegerType::U64)), 377 sym::_pedersen64_hash_to_u128_raw => Self::Hash(HashVariant::HashPED64Raw, Type::Integer(IntegerType::U128)), 378 sym::_pedersen64_hash_to_scalar_raw => Self::Hash(HashVariant::HashPED64Raw, Type::Scalar), 379 380 sym::_pedersen128_hash_to_address => Self::Hash(HashVariant::HashPED128, Type::Address), 381 sym::_pedersen128_hash_to_field => Self::Hash(HashVariant::HashPED128, Type::Field), 382 sym::_pedersen128_hash_to_group => Self::Hash(HashVariant::HashPED128, Type::Group), 383 sym::_pedersen128_hash_to_i8 => Self::Hash(HashVariant::HashPED128, Type::Integer(IntegerType::I8)), 384 sym::_pedersen128_hash_to_i16 => Self::Hash(HashVariant::HashPED128, Type::Integer(IntegerType::I16)), 385 sym::_pedersen128_hash_to_i32 => Self::Hash(HashVariant::HashPED128, Type::Integer(IntegerType::I32)), 386 sym::_pedersen128_hash_to_i64 => Self::Hash(HashVariant::HashPED128, Type::Integer(IntegerType::I64)), 387 sym::_pedersen128_hash_to_i128 => Self::Hash(HashVariant::HashPED128, Type::Integer(IntegerType::I128)), 388 sym::_pedersen128_hash_to_u8 => Self::Hash(HashVariant::HashPED128, Type::Integer(IntegerType::U8)), 389 sym::_pedersen128_hash_to_u16 => Self::Hash(HashVariant::HashPED128, Type::Integer(IntegerType::U16)), 390 sym::_pedersen128_hash_to_u32 => Self::Hash(HashVariant::HashPED128, Type::Integer(IntegerType::U32)), 391 sym::_pedersen128_hash_to_u64 => Self::Hash(HashVariant::HashPED128, Type::Integer(IntegerType::U64)), 392 sym::_pedersen128_hash_to_u128 => Self::Hash(HashVariant::HashPED128, Type::Integer(IntegerType::U128)), 393 sym::_pedersen128_hash_to_scalar => Self::Hash(HashVariant::HashPED128, Type::Scalar), 394 sym::_pedersen128_hash_to_address_raw => Self::Hash(HashVariant::HashPED128Raw, Type::Address), 395 sym::_pedersen128_hash_to_field_raw => Self::Hash(HashVariant::HashPED128Raw, Type::Field), 396 sym::_pedersen128_hash_to_group_raw => Self::Hash(HashVariant::HashPED128Raw, Type::Group), 397 sym::_pedersen128_hash_to_i8_raw => Self::Hash(HashVariant::HashPED128Raw, Type::Integer(IntegerType::I8)), 398 sym::_pedersen128_hash_to_i16_raw => Self::Hash(HashVariant::HashPED128Raw, Type::Integer(IntegerType::I16)), 399 sym::_pedersen128_hash_to_i32_raw => Self::Hash(HashVariant::HashPED128Raw, Type::Integer(IntegerType::I32)), 400 sym::_pedersen128_hash_to_i64_raw => Self::Hash(HashVariant::HashPED128Raw, Type::Integer(IntegerType::I64)), 401 sym::_pedersen128_hash_to_i128_raw => Self::Hash(HashVariant::HashPED128Raw, Type::Integer(IntegerType::I128)), 402 sym::_pedersen128_hash_to_u8_raw => Self::Hash(HashVariant::HashPED128Raw, Type::Integer(IntegerType::U8)), 403 sym::_pedersen128_hash_to_u16_raw => Self::Hash(HashVariant::HashPED128Raw, Type::Integer(IntegerType::U16)), 404 sym::_pedersen128_hash_to_u32_raw => Self::Hash(HashVariant::HashPED128Raw, Type::Integer(IntegerType::U32)), 405 sym::_pedersen128_hash_to_u64_raw => Self::Hash(HashVariant::HashPED128Raw, Type::Integer(IntegerType::U64)), 406 sym::_pedersen128_hash_to_u128_raw => Self::Hash(HashVariant::HashPED128Raw, Type::Integer(IntegerType::U128)), 407 sym::_pedersen128_hash_to_scalar_raw => Self::Hash(HashVariant::HashPED128Raw, Type::Scalar), 408 409 sym::_poseidon2_hash_to_address => Self::Hash(HashVariant::HashPSD2, Type::Address), 410 sym::_poseidon2_hash_to_field => Self::Hash(HashVariant::HashPSD2, Type::Field), 411 sym::_poseidon2_hash_to_group => Self::Hash(HashVariant::HashPSD2, Type::Group), 412 sym::_poseidon2_hash_to_i8 => Self::Hash(HashVariant::HashPSD2, Type::Integer(IntegerType::I8)), 413 sym::_poseidon2_hash_to_i16 => Self::Hash(HashVariant::HashPSD2, Type::Integer(IntegerType::I16)), 414 sym::_poseidon2_hash_to_i32 => Self::Hash(HashVariant::HashPSD2, Type::Integer(IntegerType::I32)), 415 sym::_poseidon2_hash_to_i64 => Self::Hash(HashVariant::HashPSD2, Type::Integer(IntegerType::I64)), 416 sym::_poseidon2_hash_to_i128 => Self::Hash(HashVariant::HashPSD2, Type::Integer(IntegerType::I128)), 417 sym::_poseidon2_hash_to_u8 => Self::Hash(HashVariant::HashPSD2, Type::Integer(IntegerType::U8)), 418 sym::_poseidon2_hash_to_u16 => Self::Hash(HashVariant::HashPSD2, Type::Integer(IntegerType::U16)), 419 sym::_poseidon2_hash_to_u32 => Self::Hash(HashVariant::HashPSD2, Type::Integer(IntegerType::U32)), 420 sym::_poseidon2_hash_to_u64 => Self::Hash(HashVariant::HashPSD2, Type::Integer(IntegerType::U64)), 421 sym::_poseidon2_hash_to_u128 => Self::Hash(HashVariant::HashPSD2, Type::Integer(IntegerType::U128)), 422 sym::_poseidon2_hash_to_scalar => Self::Hash(HashVariant::HashPSD2, Type::Scalar), 423 sym::_poseidon2_hash_to_address_raw => Self::Hash(HashVariant::HashPSD2Raw, Type::Address), 424 sym::_poseidon2_hash_to_field_raw => Self::Hash(HashVariant::HashPSD2Raw, Type::Field), 425 sym::_poseidon2_hash_to_group_raw => Self::Hash(HashVariant::HashPSD2Raw, Type::Group), 426 sym::_poseidon2_hash_to_i8_raw => Self::Hash(HashVariant::HashPSD2Raw, Type::Integer(IntegerType::I8)), 427 sym::_poseidon2_hash_to_i16_raw => Self::Hash(HashVariant::HashPSD2Raw, Type::Integer(IntegerType::I16)), 428 sym::_poseidon2_hash_to_i32_raw => Self::Hash(HashVariant::HashPSD2Raw, Type::Integer(IntegerType::I32)), 429 sym::_poseidon2_hash_to_i64_raw => Self::Hash(HashVariant::HashPSD2Raw, Type::Integer(IntegerType::I64)), 430 sym::_poseidon2_hash_to_i128_raw => Self::Hash(HashVariant::HashPSD2Raw, Type::Integer(IntegerType::I128)), 431 sym::_poseidon2_hash_to_u8_raw => Self::Hash(HashVariant::HashPSD2Raw, Type::Integer(IntegerType::U8)), 432 sym::_poseidon2_hash_to_u16_raw => Self::Hash(HashVariant::HashPSD2Raw, Type::Integer(IntegerType::U16)), 433 sym::_poseidon2_hash_to_u32_raw => Self::Hash(HashVariant::HashPSD2Raw, Type::Integer(IntegerType::U32)), 434 sym::_poseidon2_hash_to_u64_raw => Self::Hash(HashVariant::HashPSD2Raw, Type::Integer(IntegerType::U64)), 435 sym::_poseidon2_hash_to_u128_raw => Self::Hash(HashVariant::HashPSD2Raw, Type::Integer(IntegerType::U128)), 436 sym::_poseidon2_hash_to_scalar_raw => Self::Hash(HashVariant::HashPSD2Raw, Type::Scalar), 437 438 sym::_poseidon4_hash_to_address => Self::Hash(HashVariant::HashPSD4, Type::Address), 439 sym::_poseidon4_hash_to_field => Self::Hash(HashVariant::HashPSD4, Type::Field), 440 sym::_poseidon4_hash_to_group => Self::Hash(HashVariant::HashPSD4, Type::Group), 441 sym::_poseidon4_hash_to_i8 => Self::Hash(HashVariant::HashPSD4, Type::Integer(IntegerType::I8)), 442 sym::_poseidon4_hash_to_i16 => Self::Hash(HashVariant::HashPSD4, Type::Integer(IntegerType::I16)), 443 sym::_poseidon4_hash_to_i32 => Self::Hash(HashVariant::HashPSD4, Type::Integer(IntegerType::I32)), 444 sym::_poseidon4_hash_to_i64 => Self::Hash(HashVariant::HashPSD4, Type::Integer(IntegerType::I64)), 445 sym::_poseidon4_hash_to_i128 => Self::Hash(HashVariant::HashPSD4, Type::Integer(IntegerType::I128)), 446 sym::_poseidon4_hash_to_u8 => Self::Hash(HashVariant::HashPSD4, Type::Integer(IntegerType::U8)), 447 sym::_poseidon4_hash_to_u16 => Self::Hash(HashVariant::HashPSD4, Type::Integer(IntegerType::U16)), 448 sym::_poseidon4_hash_to_u32 => Self::Hash(HashVariant::HashPSD4, Type::Integer(IntegerType::U32)), 449 sym::_poseidon4_hash_to_u64 => Self::Hash(HashVariant::HashPSD4, Type::Integer(IntegerType::U64)), 450 sym::_poseidon4_hash_to_u128 => Self::Hash(HashVariant::HashPSD4, Type::Integer(IntegerType::U128)), 451 sym::_poseidon4_hash_to_scalar => Self::Hash(HashVariant::HashPSD4, Type::Scalar), 452 sym::_poseidon4_hash_to_address_raw => Self::Hash(HashVariant::HashPSD4Raw, Type::Address), 453 sym::_poseidon4_hash_to_field_raw => Self::Hash(HashVariant::HashPSD4Raw, Type::Field), 454 sym::_poseidon4_hash_to_group_raw => Self::Hash(HashVariant::HashPSD4Raw, Type::Group), 455 sym::_poseidon4_hash_to_i8_raw => Self::Hash(HashVariant::HashPSD4Raw, Type::Integer(IntegerType::I8)), 456 sym::_poseidon4_hash_to_i16_raw => Self::Hash(HashVariant::HashPSD4Raw, Type::Integer(IntegerType::I16)), 457 sym::_poseidon4_hash_to_i32_raw => Self::Hash(HashVariant::HashPSD4Raw, Type::Integer(IntegerType::I32)), 458 sym::_poseidon4_hash_to_i64_raw => Self::Hash(HashVariant::HashPSD4Raw, Type::Integer(IntegerType::I64)), 459 sym::_poseidon4_hash_to_i128_raw => Self::Hash(HashVariant::HashPSD4Raw, Type::Integer(IntegerType::I128)), 460 sym::_poseidon4_hash_to_u8_raw => Self::Hash(HashVariant::HashPSD4Raw, Type::Integer(IntegerType::U8)), 461 sym::_poseidon4_hash_to_u16_raw => Self::Hash(HashVariant::HashPSD4Raw, Type::Integer(IntegerType::U16)), 462 sym::_poseidon4_hash_to_u32_raw => Self::Hash(HashVariant::HashPSD4Raw, Type::Integer(IntegerType::U32)), 463 sym::_poseidon4_hash_to_u64_raw => Self::Hash(HashVariant::HashPSD4Raw, Type::Integer(IntegerType::U64)), 464 sym::_poseidon4_hash_to_u128_raw => Self::Hash(HashVariant::HashPSD4Raw, Type::Integer(IntegerType::U128)), 465 sym::_poseidon4_hash_to_scalar_raw => Self::Hash(HashVariant::HashPSD4Raw, Type::Scalar), 466 467 sym::_poseidon8_hash_to_address => Self::Hash(HashVariant::HashPSD8, Type::Address), 468 sym::_poseidon8_hash_to_field => Self::Hash(HashVariant::HashPSD8, Type::Field), 469 sym::_poseidon8_hash_to_group => Self::Hash(HashVariant::HashPSD8, Type::Group), 470 sym::_poseidon8_hash_to_i8 => Self::Hash(HashVariant::HashPSD8, Type::Integer(IntegerType::I8)), 471 sym::_poseidon8_hash_to_i16 => Self::Hash(HashVariant::HashPSD8, Type::Integer(IntegerType::I16)), 472 sym::_poseidon8_hash_to_i32 => Self::Hash(HashVariant::HashPSD8, Type::Integer(IntegerType::I32)), 473 sym::_poseidon8_hash_to_i64 => Self::Hash(HashVariant::HashPSD8, Type::Integer(IntegerType::I64)), 474 sym::_poseidon8_hash_to_i128 => Self::Hash(HashVariant::HashPSD8, Type::Integer(IntegerType::I128)), 475 sym::_poseidon8_hash_to_u8 => Self::Hash(HashVariant::HashPSD8, Type::Integer(IntegerType::U8)), 476 sym::_poseidon8_hash_to_u16 => Self::Hash(HashVariant::HashPSD8, Type::Integer(IntegerType::U16)), 477 sym::_poseidon8_hash_to_u32 => Self::Hash(HashVariant::HashPSD8, Type::Integer(IntegerType::U32)), 478 sym::_poseidon8_hash_to_u64 => Self::Hash(HashVariant::HashPSD8, Type::Integer(IntegerType::U64)), 479 sym::_poseidon8_hash_to_u128 => Self::Hash(HashVariant::HashPSD8, Type::Integer(IntegerType::U128)), 480 sym::_poseidon8_hash_to_scalar => Self::Hash(HashVariant::HashPSD8, Type::Scalar), 481 sym::_poseidon8_hash_to_address_raw => Self::Hash(HashVariant::HashPSD8Raw, Type::Address), 482 sym::_poseidon8_hash_to_field_raw => Self::Hash(HashVariant::HashPSD8Raw, Type::Field), 483 sym::_poseidon8_hash_to_group_raw => Self::Hash(HashVariant::HashPSD8Raw, Type::Group), 484 sym::_poseidon8_hash_to_i8_raw => Self::Hash(HashVariant::HashPSD8Raw, Type::Integer(IntegerType::I8)), 485 sym::_poseidon8_hash_to_i16_raw => Self::Hash(HashVariant::HashPSD8Raw, Type::Integer(IntegerType::I16)), 486 sym::_poseidon8_hash_to_i32_raw => Self::Hash(HashVariant::HashPSD8Raw, Type::Integer(IntegerType::I32)), 487 sym::_poseidon8_hash_to_i64_raw => Self::Hash(HashVariant::HashPSD8Raw, Type::Integer(IntegerType::I64)), 488 sym::_poseidon8_hash_to_i128_raw => Self::Hash(HashVariant::HashPSD8Raw, Type::Integer(IntegerType::I128)), 489 sym::_poseidon8_hash_to_u8_raw => Self::Hash(HashVariant::HashPSD8Raw, Type::Integer(IntegerType::U8)), 490 sym::_poseidon8_hash_to_u16_raw => Self::Hash(HashVariant::HashPSD8Raw, Type::Integer(IntegerType::U16)), 491 sym::_poseidon8_hash_to_u32_raw => Self::Hash(HashVariant::HashPSD8Raw, Type::Integer(IntegerType::U32)), 492 sym::_poseidon8_hash_to_u64_raw => Self::Hash(HashVariant::HashPSD8Raw, Type::Integer(IntegerType::U64)), 493 sym::_poseidon8_hash_to_u128_raw => Self::Hash(HashVariant::HashPSD8Raw, Type::Integer(IntegerType::U128)), 494 sym::_poseidon8_hash_to_scalar_raw => Self::Hash(HashVariant::HashPSD8Raw, Type::Scalar), 495 496 sym::_sha3_256_hash_to_address => Self::Hash(HashVariant::HashSha3_256, Type::Address), 497 sym::_sha3_256_hash_to_field => Self::Hash(HashVariant::HashSha3_256, Type::Field), 498 sym::_sha3_256_hash_to_group => Self::Hash(HashVariant::HashSha3_256, Type::Group), 499 sym::_sha3_256_hash_to_i8 => Self::Hash(HashVariant::HashSha3_256, Type::Integer(IntegerType::I8)), 500 sym::_sha3_256_hash_to_i16 => Self::Hash(HashVariant::HashSha3_256, Type::Integer(IntegerType::I16)), 501 sym::_sha3_256_hash_to_i32 => Self::Hash(HashVariant::HashSha3_256, Type::Integer(IntegerType::I32)), 502 sym::_sha3_256_hash_to_i64 => Self::Hash(HashVariant::HashSha3_256, Type::Integer(IntegerType::I64)), 503 sym::_sha3_256_hash_to_i128 => Self::Hash(HashVariant::HashSha3_256, Type::Integer(IntegerType::I128)), 504 sym::_sha3_256_hash_to_u8 => Self::Hash(HashVariant::HashSha3_256, Type::Integer(IntegerType::U8)), 505 sym::_sha3_256_hash_to_u16 => Self::Hash(HashVariant::HashSha3_256, Type::Integer(IntegerType::U16)), 506 sym::_sha3_256_hash_to_u32 => Self::Hash(HashVariant::HashSha3_256, Type::Integer(IntegerType::U32)), 507 sym::_sha3_256_hash_to_u64 => Self::Hash(HashVariant::HashSha3_256, Type::Integer(IntegerType::U64)), 508 sym::_sha3_256_hash_to_u128 => Self::Hash(HashVariant::HashSha3_256, Type::Integer(IntegerType::U128)), 509 sym::_sha3_256_hash_to_scalar => Self::Hash(HashVariant::HashSha3_256, Type::Scalar), 510 sym::_sha3_256_hash_to_address_raw => Self::Hash(HashVariant::HashSha3_256Raw, Type::Address), 511 sym::_sha3_256_hash_to_field_raw => Self::Hash(HashVariant::HashSha3_256Raw, Type::Field), 512 sym::_sha3_256_hash_to_group_raw => Self::Hash(HashVariant::HashSha3_256Raw, Type::Group), 513 sym::_sha3_256_hash_to_i8_raw => Self::Hash(HashVariant::HashSha3_256Raw, Type::Integer(IntegerType::I8)), 514 sym::_sha3_256_hash_to_i16_raw => Self::Hash(HashVariant::HashSha3_256Raw, Type::Integer(IntegerType::I16)), 515 sym::_sha3_256_hash_to_i32_raw => Self::Hash(HashVariant::HashSha3_256Raw, Type::Integer(IntegerType::I32)), 516 sym::_sha3_256_hash_to_i64_raw => Self::Hash(HashVariant::HashSha3_256Raw, Type::Integer(IntegerType::I64)), 517 sym::_sha3_256_hash_to_i128_raw => Self::Hash(HashVariant::HashSha3_256Raw, Type::Integer(IntegerType::I128)), 518 sym::_sha3_256_hash_to_u8_raw => Self::Hash(HashVariant::HashSha3_256Raw, Type::Integer(IntegerType::U8)), 519 sym::_sha3_256_hash_to_u16_raw => Self::Hash(HashVariant::HashSha3_256Raw, Type::Integer(IntegerType::U16)), 520 sym::_sha3_256_hash_to_u32_raw => Self::Hash(HashVariant::HashSha3_256Raw, Type::Integer(IntegerType::U32)), 521 sym::_sha3_256_hash_to_u64_raw => Self::Hash(HashVariant::HashSha3_256Raw, Type::Integer(IntegerType::U64)), 522 sym::_sha3_256_hash_to_u128_raw => Self::Hash(HashVariant::HashSha3_256Raw, Type::Integer(IntegerType::U128)), 523 sym::_sha3_256_hash_to_scalar_raw => Self::Hash(HashVariant::HashSha3_256Raw, Type::Scalar), 524 sym::_sha3_256_hash_to_bits => Self::Hash(HashVariant::HashSha3_256Native, Type::Array(ArrayType::bit_array(256))), 525 sym::_sha3_256_hash_to_bits_raw => Self::Hash(HashVariant::HashSha3_256NativeRaw, Type::Array(ArrayType::bit_array(256))), 526 527 sym::_sha3_384_hash_to_address => Self::Hash(HashVariant::HashSha3_384, Type::Address), 528 sym::_sha3_384_hash_to_field => Self::Hash(HashVariant::HashSha3_384, Type::Field), 529 sym::_sha3_384_hash_to_group => Self::Hash(HashVariant::HashSha3_384, Type::Group), 530 sym::_sha3_384_hash_to_i8 => Self::Hash(HashVariant::HashSha3_384, Type::Integer(IntegerType::I8)), 531 sym::_sha3_384_hash_to_i16 => Self::Hash(HashVariant::HashSha3_384, Type::Integer(IntegerType::I16)), 532 sym::_sha3_384_hash_to_i32 => Self::Hash(HashVariant::HashSha3_384, Type::Integer(IntegerType::I32)), 533 sym::_sha3_384_hash_to_i64 => Self::Hash(HashVariant::HashSha3_384, Type::Integer(IntegerType::I64)), 534 sym::_sha3_384_hash_to_i128 => Self::Hash(HashVariant::HashSha3_384, Type::Integer(IntegerType::I128)), 535 sym::_sha3_384_hash_to_u8 => Self::Hash(HashVariant::HashSha3_384, Type::Integer(IntegerType::U8)), 536 sym::_sha3_384_hash_to_u16 => Self::Hash(HashVariant::HashSha3_384, Type::Integer(IntegerType::U16)), 537 sym::_sha3_384_hash_to_u32 => Self::Hash(HashVariant::HashSha3_384, Type::Integer(IntegerType::U32)), 538 sym::_sha3_384_hash_to_u64 => Self::Hash(HashVariant::HashSha3_384, Type::Integer(IntegerType::U64)), 539 sym::_sha3_384_hash_to_u128 => Self::Hash(HashVariant::HashSha3_384, Type::Integer(IntegerType::U128)), 540 sym::_sha3_384_hash_to_scalar => Self::Hash(HashVariant::HashSha3_384, Type::Scalar), 541 sym::_sha3_384_hash_to_address_raw => Self::Hash(HashVariant::HashSha3_384Raw, Type::Address), 542 sym::_sha3_384_hash_to_field_raw => Self::Hash(HashVariant::HashSha3_384Raw, Type::Field), 543 sym::_sha3_384_hash_to_group_raw => Self::Hash(HashVariant::HashSha3_384Raw, Type::Group), 544 sym::_sha3_384_hash_to_i8_raw => Self::Hash(HashVariant::HashSha3_384Raw, Type::Integer(IntegerType::I8)), 545 sym::_sha3_384_hash_to_i16_raw => Self::Hash(HashVariant::HashSha3_384Raw, Type::Integer(IntegerType::I16)), 546 sym::_sha3_384_hash_to_i32_raw => Self::Hash(HashVariant::HashSha3_384Raw, Type::Integer(IntegerType::I32)), 547 sym::_sha3_384_hash_to_i64_raw => Self::Hash(HashVariant::HashSha3_384Raw, Type::Integer(IntegerType::I64)), 548 sym::_sha3_384_hash_to_i128_raw => Self::Hash(HashVariant::HashSha3_384Raw, Type::Integer(IntegerType::I128)), 549 sym::_sha3_384_hash_to_u8_raw => Self::Hash(HashVariant::HashSha3_384Raw, Type::Integer(IntegerType::U8)), 550 sym::_sha3_384_hash_to_u16_raw => Self::Hash(HashVariant::HashSha3_384Raw, Type::Integer(IntegerType::U16)), 551 sym::_sha3_384_hash_to_u32_raw => Self::Hash(HashVariant::HashSha3_384Raw, Type::Integer(IntegerType::U32)), 552 sym::_sha3_384_hash_to_u64_raw => Self::Hash(HashVariant::HashSha3_384Raw, Type::Integer(IntegerType::U64)), 553 sym::_sha3_384_hash_to_u128_raw => Self::Hash(HashVariant::HashSha3_384Raw, Type::Integer(IntegerType::U128)), 554 sym::_sha3_384_hash_to_scalar_raw => Self::Hash(HashVariant::HashSha3_384Raw, Type::Scalar), 555 sym::_sha3_384_hash_to_bits => Self::Hash(HashVariant::HashSha3_384Native, Type::Array(ArrayType::bit_array(384))), 556 sym::_sha3_384_hash_to_bits_raw => Self::Hash(HashVariant::HashSha3_384NativeRaw, Type::Array(ArrayType::bit_array(384))), 557 558 sym::_sha3_512_hash_to_address => Self::Hash(HashVariant::HashSha3_512, Type::Address), 559 sym::_sha3_512_hash_to_field => Self::Hash(HashVariant::HashSha3_512, Type::Field), 560 sym::_sha3_512_hash_to_group => Self::Hash(HashVariant::HashSha3_512, Type::Group), 561 sym::_sha3_512_hash_to_i8 => Self::Hash(HashVariant::HashSha3_512, Type::Integer(IntegerType::I8)), 562 sym::_sha3_512_hash_to_i16 => Self::Hash(HashVariant::HashSha3_512, Type::Integer(IntegerType::I16)), 563 sym::_sha3_512_hash_to_i32 => Self::Hash(HashVariant::HashSha3_512, Type::Integer(IntegerType::I32)), 564 sym::_sha3_512_hash_to_i64 => Self::Hash(HashVariant::HashSha3_512, Type::Integer(IntegerType::I64)), 565 sym::_sha3_512_hash_to_i128 => Self::Hash(HashVariant::HashSha3_512, Type::Integer(IntegerType::I128)), 566 sym::_sha3_512_hash_to_u8 => Self::Hash(HashVariant::HashSha3_512, Type::Integer(IntegerType::U8)), 567 sym::_sha3_512_hash_to_u16 => Self::Hash(HashVariant::HashSha3_512, Type::Integer(IntegerType::U16)), 568 sym::_sha3_512_hash_to_u32 => Self::Hash(HashVariant::HashSha3_512, Type::Integer(IntegerType::U32)), 569 sym::_sha3_512_hash_to_u64 => Self::Hash(HashVariant::HashSha3_512, Type::Integer(IntegerType::U64)), 570 sym::_sha3_512_hash_to_u128 => Self::Hash(HashVariant::HashSha3_512, Type::Integer(IntegerType::U128)), 571 sym::_sha3_512_hash_to_scalar => Self::Hash(HashVariant::HashSha3_512, Type::Scalar), 572 sym::_sha3_512_hash_to_address_raw => Self::Hash(HashVariant::HashSha3_512Raw, Type::Address), 573 sym::_sha3_512_hash_to_field_raw => Self::Hash(HashVariant::HashSha3_512Raw, Type::Field), 574 sym::_sha3_512_hash_to_group_raw => Self::Hash(HashVariant::HashSha3_512Raw, Type::Group), 575 sym::_sha3_512_hash_to_i8_raw => Self::Hash(HashVariant::HashSha3_512Raw, Type::Integer(IntegerType::I8)), 576 sym::_sha3_512_hash_to_i16_raw => Self::Hash(HashVariant::HashSha3_512Raw, Type::Integer(IntegerType::I16)), 577 sym::_sha3_512_hash_to_i32_raw => Self::Hash(HashVariant::HashSha3_512Raw, Type::Integer(IntegerType::I32)), 578 sym::_sha3_512_hash_to_i64_raw => Self::Hash(HashVariant::HashSha3_512Raw, Type::Integer(IntegerType::I64)), 579 sym::_sha3_512_hash_to_i128_raw => Self::Hash(HashVariant::HashSha3_512Raw, Type::Integer(IntegerType::I128)), 580 sym::_sha3_512_hash_to_u8_raw => Self::Hash(HashVariant::HashSha3_512Raw, Type::Integer(IntegerType::U8)), 581 sym::_sha3_512_hash_to_u16_raw => Self::Hash(HashVariant::HashSha3_512Raw, Type::Integer(IntegerType::U16)), 582 sym::_sha3_512_hash_to_u32_raw => Self::Hash(HashVariant::HashSha3_512Raw, Type::Integer(IntegerType::U32)), 583 sym::_sha3_512_hash_to_u64_raw => Self::Hash(HashVariant::HashSha3_512Raw, Type::Integer(IntegerType::U64)), 584 sym::_sha3_512_hash_to_u128_raw => Self::Hash(HashVariant::HashSha3_512Raw, Type::Integer(IntegerType::U128)), 585 sym::_sha3_512_hash_to_scalar_raw => Self::Hash(HashVariant::HashSha3_512Raw, Type::Scalar), 586 sym::_sha3_512_hash_to_bits => Self::Hash(HashVariant::HashSha3_512Native, Type::Array(ArrayType::bit_array(512))), 587 sym::_sha3_512_hash_to_bits_raw => Self::Hash(HashVariant::HashSha3_512NativeRaw, Type::Array(ArrayType::bit_array(512))), 588 589 sym::_ecdsa_verify_digest => Self::ECDSAVerify(ECDSAVerifyVariant::Digest), 590 sym::_ecdsa_verify_digest_eth => Self::ECDSAVerify(ECDSAVerifyVariant::DigestEth), 591 sym::_ecdsa_verify_keccak256 => Self::ECDSAVerify(ECDSAVerifyVariant::HashKeccak256), 592 sym::_ecdsa_verify_keccak256_raw => Self::ECDSAVerify(ECDSAVerifyVariant::HashKeccak256Raw), 593 sym::_ecdsa_verify_keccak256_eth => Self::ECDSAVerify(ECDSAVerifyVariant::HashKeccak256Eth), 594 sym::_ecdsa_verify_keccak384 => Self::ECDSAVerify(ECDSAVerifyVariant::HashKeccak384), 595 sym::_ecdsa_verify_keccak384_raw => Self::ECDSAVerify(ECDSAVerifyVariant::HashKeccak384Raw), 596 sym::_ecdsa_verify_keccak384_eth => Self::ECDSAVerify(ECDSAVerifyVariant::HashKeccak384Eth), 597 sym::_ecdsa_verify_keccak512 => Self::ECDSAVerify(ECDSAVerifyVariant::HashKeccak512), 598 sym::_ecdsa_verify_keccak512_raw => Self::ECDSAVerify(ECDSAVerifyVariant::HashKeccak512Raw), 599 sym::_ecdsa_verify_keccak512_eth => Self::ECDSAVerify(ECDSAVerifyVariant::HashKeccak512Eth), 600 sym::_ecdsa_verify_sha3_256 => Self::ECDSAVerify(ECDSAVerifyVariant::HashSha3_256), 601 sym::_ecdsa_verify_sha3_256_raw => Self::ECDSAVerify(ECDSAVerifyVariant::HashSha3_256Raw), 602 sym::_ecdsa_verify_sha3_256_eth => Self::ECDSAVerify(ECDSAVerifyVariant::HashSha3_256Eth), 603 sym::_ecdsa_verify_sha3_384 => Self::ECDSAVerify(ECDSAVerifyVariant::HashSha3_384), 604 sym::_ecdsa_verify_sha3_384_raw => Self::ECDSAVerify(ECDSAVerifyVariant::HashSha3_384Raw), 605 sym::_ecdsa_verify_sha3_384_eth => Self::ECDSAVerify(ECDSAVerifyVariant::HashSha3_384Eth), 606 sym::_ecdsa_verify_sha3_512 => Self::ECDSAVerify(ECDSAVerifyVariant::HashSha3_512), 607 sym::_ecdsa_verify_sha3_512_raw => Self::ECDSAVerify(ECDSAVerifyVariant::HashSha3_512Raw), 608 sym::_ecdsa_verify_sha3_512_eth => Self::ECDSAVerify(ECDSAVerifyVariant::HashSha3_512Eth), 609 610 sym::_mapping_get => Self::MappingGet, 611 sym::_mapping_set => Self::MappingSet, 612 sym::_mapping_get_or_use => Self::MappingGetOrUse, 613 sym::_mapping_remove => Self::MappingRemove, 614 sym::_mapping_contains => Self::MappingContains, 615 616 sym::_optional_unwrap => Self::OptionalUnwrap, 617 sym::_optional_unwrap_or => Self::OptionalUnwrapOr, 618 619 sym::_vector_get => Self::VectorGet, 620 sym::_vector_set => Self::VectorSet, 621 sym::_vector_push => Self::VectorPush, 622 sym::_vector_len => Self::VectorLen, 623 sym::_vector_clear => Self::VectorClear, 624 sym::_vector_pop => Self::VectorPop, 625 sym::_vector_swap_remove => Self::VectorSwapRemove, 626 627 sym::_group_to_x_coordinate => Self::GroupToXCoordinate, 628 sym::_group_to_y_coordinate => Self::GroupToYCoordinate, 629 630 sym::_program_checksum => Self::ProgramChecksum, 631 sym::_program_edition => Self::ProgramEdition, 632 sym::_program_owner => Self::ProgramOwner, 633 634 sym::_signature_verify => Self::SignatureVerify, 635 sym::_future_await => Self::FutureAwait, 636 637 sym::_serialize_to_bits => Self::Serialize(SerializeVariant::ToBits), 638 sym::_serialize_to_bits_raw => Self::Serialize(SerializeVariant::ToBitsRaw), 639 640 sym::_cheat_code_print_mapping => Self::CheatCodePrintMapping, 641 sym::_cheat_code_set_block_height => Self::CheatCodeSetBlockHeight, 642 sym::_cheat_code_set_block_timestamp => Self::CheatCodeSetBlockTimestamp, 643 sym::_cheat_code_set_signer => Self::CheatCodeSetSigner, 644 645 _ => return None, 646 }) 647 } 648 649 /// Returns a `Intrinsic` from the given module and method symbols. 650 #[rustfmt::skip] 651 pub fn convert_path_symbols(module: Symbol, function: Symbol) -> Option<Symbol> { 652 Some(match (module, function) { 653 (sym::Deserialize, sym::from_bits) => sym::_deserialize_from_bits, 654 (sym::Deserialize, sym::from_bits_raw) => sym::_deserialize_from_bits_raw, 655 656 (sym::ChaCha, sym::rand_address) => sym::_chacha_rand_address, 657 (sym::ChaCha, sym::rand_bool) => sym::_chacha_rand_bool, 658 (sym::ChaCha, sym::rand_field) => sym::_chacha_rand_field, 659 (sym::ChaCha, sym::rand_group) => sym::_chacha_rand_group, 660 (sym::ChaCha, sym::rand_i8) => sym::_chacha_rand_i8, 661 (sym::ChaCha, sym::rand_i16) => sym::_chacha_rand_i16, 662 (sym::ChaCha, sym::rand_i32) => sym::_chacha_rand_i32, 663 (sym::ChaCha, sym::rand_i64) => sym::_chacha_rand_i64, 664 (sym::ChaCha, sym::rand_i128) => sym::_chacha_rand_i128, 665 (sym::ChaCha, sym::rand_u8) => sym::_chacha_rand_u8, 666 (sym::ChaCha, sym::rand_u16) => sym::_chacha_rand_u16, 667 (sym::ChaCha, sym::rand_u32) => sym::_chacha_rand_u32, 668 (sym::ChaCha, sym::rand_u64) => sym::_chacha_rand_u64, 669 (sym::ChaCha, sym::rand_u128) => sym::_chacha_rand_u128, 670 (sym::ChaCha, sym::rand_scalar) => sym::_chacha_rand_scalar, 671 672 (sym::BHP256, sym::commit_to_address) => sym::_bhp256_commit_to_address, 673 (sym::BHP256, sym::commit_to_field) => sym::_bhp256_commit_to_field, 674 (sym::BHP256, sym::commit_to_group) => sym::_bhp256_commit_to_group, 675 (sym::BHP512, sym::commit_to_address) => sym::_bhp512_commit_to_address, 676 (sym::BHP512, sym::commit_to_field) => sym::_bhp512_commit_to_field, 677 (sym::BHP512, sym::commit_to_group) => sym::_bhp512_commit_to_group, 678 (sym::BHP768, sym::commit_to_address) => sym::_bhp768_commit_to_address, 679 (sym::BHP768, sym::commit_to_field) => sym::_bhp768_commit_to_field, 680 (sym::BHP768, sym::commit_to_group) => sym::_bhp768_commit_to_group, 681 (sym::BHP1024, sym::commit_to_address) => sym::_bhp1024_commit_to_address, 682 (sym::BHP1024, sym::commit_to_field) => sym::_bhp1024_commit_to_field, 683 (sym::BHP1024, sym::commit_to_group) => sym::_bhp1024_commit_to_group, 684 (sym::Pedersen64, sym::commit_to_address) => sym::_pedersen64_commit_to_address, 685 (sym::Pedersen64, sym::commit_to_field) => sym::_pedersen64_commit_to_field, 686 (sym::Pedersen64, sym::commit_to_group) => sym::_pedersen64_commit_to_group, 687 (sym::Pedersen128, sym::commit_to_address) => sym::_pedersen128_commit_to_address, 688 (sym::Pedersen128, sym::commit_to_field) => sym::_pedersen128_commit_to_field, 689 (sym::Pedersen128, sym::commit_to_group) => sym::_pedersen128_commit_to_group, 690 691 (sym::BHP256, sym::hash_to_address) => sym::_bhp256_hash_to_address, 692 (sym::BHP256, sym::hash_to_field) => sym::_bhp256_hash_to_field, 693 (sym::BHP256, sym::hash_to_group) => sym::_bhp256_hash_to_group, 694 (sym::BHP256, sym::hash_to_i8) => sym::_bhp256_hash_to_i8, 695 (sym::BHP256, sym::hash_to_i16) => sym::_bhp256_hash_to_i16, 696 (sym::BHP256, sym::hash_to_i32) => sym::_bhp256_hash_to_i32, 697 (sym::BHP256, sym::hash_to_i64) => sym::_bhp256_hash_to_i64, 698 (sym::BHP256, sym::hash_to_i128) => sym::_bhp256_hash_to_i128, 699 (sym::BHP256, sym::hash_to_u8) => sym::_bhp256_hash_to_u8, 700 (sym::BHP256, sym::hash_to_u16) => sym::_bhp256_hash_to_u16, 701 (sym::BHP256, sym::hash_to_u32) => sym::_bhp256_hash_to_u32, 702 (sym::BHP256, sym::hash_to_u64) => sym::_bhp256_hash_to_u64, 703 (sym::BHP256, sym::hash_to_u128) => sym::_bhp256_hash_to_u128, 704 (sym::BHP256, sym::hash_to_scalar) => sym::_bhp256_hash_to_scalar, 705 (sym::BHP256, sym::hash_to_address_raw) => sym::_bhp256_hash_to_address_raw, 706 (sym::BHP256, sym::hash_to_field_raw) => sym::_bhp256_hash_to_field_raw, 707 (sym::BHP256, sym::hash_to_group_raw) => sym::_bhp256_hash_to_group_raw, 708 (sym::BHP256, sym::hash_to_i8_raw) => sym::_bhp256_hash_to_i8_raw, 709 (sym::BHP256, sym::hash_to_i16_raw) => sym::_bhp256_hash_to_i16_raw, 710 (sym::BHP256, sym::hash_to_i32_raw) => sym::_bhp256_hash_to_i32_raw, 711 (sym::BHP256, sym::hash_to_i64_raw) => sym::_bhp256_hash_to_i64_raw, 712 (sym::BHP256, sym::hash_to_i128_raw) => sym::_bhp256_hash_to_i128_raw, 713 (sym::BHP256, sym::hash_to_u8_raw) => sym::_bhp256_hash_to_u8_raw, 714 (sym::BHP256, sym::hash_to_u16_raw) => sym::_bhp256_hash_to_u16_raw, 715 (sym::BHP256, sym::hash_to_u32_raw) => sym::_bhp256_hash_to_u32_raw, 716 (sym::BHP256, sym::hash_to_u64_raw) => sym::_bhp256_hash_to_u64_raw, 717 (sym::BHP256, sym::hash_to_u128_raw) => sym::_bhp256_hash_to_u128_raw, 718 (sym::BHP256, sym::hash_to_scalar_raw) => sym::_bhp256_hash_to_scalar_raw, 719 720 (sym::BHP512, sym::hash_to_address) => sym::_bhp512_hash_to_address, 721 (sym::BHP512, sym::hash_to_field) => sym::_bhp512_hash_to_field, 722 (sym::BHP512, sym::hash_to_group) => sym::_bhp512_hash_to_group, 723 (sym::BHP512, sym::hash_to_i8) => sym::_bhp512_hash_to_i8, 724 (sym::BHP512, sym::hash_to_i16) => sym::_bhp512_hash_to_i16, 725 (sym::BHP512, sym::hash_to_i32) => sym::_bhp512_hash_to_i32, 726 (sym::BHP512, sym::hash_to_i64) => sym::_bhp512_hash_to_i64, 727 (sym::BHP512, sym::hash_to_i128) => sym::_bhp512_hash_to_i128, 728 (sym::BHP512, sym::hash_to_u8) => sym::_bhp512_hash_to_u8, 729 (sym::BHP512, sym::hash_to_u16) => sym::_bhp512_hash_to_u16, 730 (sym::BHP512, sym::hash_to_u32) => sym::_bhp512_hash_to_u32, 731 (sym::BHP512, sym::hash_to_u64) => sym::_bhp512_hash_to_u64, 732 (sym::BHP512, sym::hash_to_u128) => sym::_bhp512_hash_to_u128, 733 (sym::BHP512, sym::hash_to_scalar) => sym::_bhp512_hash_to_scalar, 734 (sym::BHP512, sym::hash_to_address_raw) => sym::_bhp512_hash_to_address_raw, 735 (sym::BHP512, sym::hash_to_field_raw) => sym::_bhp512_hash_to_field_raw, 736 (sym::BHP512, sym::hash_to_group_raw) => sym::_bhp512_hash_to_group_raw, 737 (sym::BHP512, sym::hash_to_i8_raw) => sym::_bhp512_hash_to_i8_raw, 738 (sym::BHP512, sym::hash_to_i16_raw) => sym::_bhp512_hash_to_i16_raw, 739 (sym::BHP512, sym::hash_to_i32_raw) => sym::_bhp512_hash_to_i32_raw, 740 (sym::BHP512, sym::hash_to_i64_raw) => sym::_bhp512_hash_to_i64_raw, 741 (sym::BHP512, sym::hash_to_i128_raw) => sym::_bhp512_hash_to_i128_raw, 742 (sym::BHP512, sym::hash_to_u8_raw) => sym::_bhp512_hash_to_u8_raw, 743 (sym::BHP512, sym::hash_to_u16_raw) => sym::_bhp512_hash_to_u16_raw, 744 (sym::BHP512, sym::hash_to_u32_raw) => sym::_bhp512_hash_to_u32_raw, 745 (sym::BHP512, sym::hash_to_u64_raw) => sym::_bhp512_hash_to_u64_raw, 746 (sym::BHP512, sym::hash_to_u128_raw) => sym::_bhp512_hash_to_u128_raw, 747 (sym::BHP512, sym::hash_to_scalar_raw) => sym::_bhp512_hash_to_scalar_raw, 748 749 (sym::BHP768, sym::hash_to_address) => sym::_bhp768_hash_to_address, 750 (sym::BHP768, sym::hash_to_field) => sym::_bhp768_hash_to_field, 751 (sym::BHP768, sym::hash_to_group) => sym::_bhp768_hash_to_group, 752 (sym::BHP768, sym::hash_to_i8) => sym::_bhp768_hash_to_i8, 753 (sym::BHP768, sym::hash_to_i16) => sym::_bhp768_hash_to_i16, 754 (sym::BHP768, sym::hash_to_i32) => sym::_bhp768_hash_to_i32, 755 (sym::BHP768, sym::hash_to_i64) => sym::_bhp768_hash_to_i64, 756 (sym::BHP768, sym::hash_to_i128) => sym::_bhp768_hash_to_i128, 757 (sym::BHP768, sym::hash_to_u8) => sym::_bhp768_hash_to_u8, 758 (sym::BHP768, sym::hash_to_u16) => sym::_bhp768_hash_to_u16, 759 (sym::BHP768, sym::hash_to_u32) => sym::_bhp768_hash_to_u32, 760 (sym::BHP768, sym::hash_to_u64) => sym::_bhp768_hash_to_u64, 761 (sym::BHP768, sym::hash_to_u128) => sym::_bhp768_hash_to_u128, 762 (sym::BHP768, sym::hash_to_scalar) => sym::_bhp768_hash_to_scalar, 763 (sym::BHP768, sym::hash_to_address_raw) => sym::_bhp768_hash_to_address_raw, 764 (sym::BHP768, sym::hash_to_field_raw) => sym::_bhp768_hash_to_field_raw, 765 (sym::BHP768, sym::hash_to_group_raw) => sym::_bhp768_hash_to_group_raw, 766 (sym::BHP768, sym::hash_to_i8_raw) => sym::_bhp768_hash_to_i8_raw, 767 (sym::BHP768, sym::hash_to_i16_raw) => sym::_bhp768_hash_to_i16_raw, 768 (sym::BHP768, sym::hash_to_i32_raw) => sym::_bhp768_hash_to_i32_raw, 769 (sym::BHP768, sym::hash_to_i64_raw) => sym::_bhp768_hash_to_i64_raw, 770 (sym::BHP768, sym::hash_to_i128_raw) => sym::_bhp768_hash_to_i128_raw, 771 (sym::BHP768, sym::hash_to_u8_raw) => sym::_bhp768_hash_to_u8_raw, 772 (sym::BHP768, sym::hash_to_u16_raw) => sym::_bhp768_hash_to_u16_raw, 773 (sym::BHP768, sym::hash_to_u32_raw) => sym::_bhp768_hash_to_u32_raw, 774 (sym::BHP768, sym::hash_to_u64_raw) => sym::_bhp768_hash_to_u64_raw, 775 (sym::BHP768, sym::hash_to_u128_raw) => sym::_bhp768_hash_to_u128_raw, 776 (sym::BHP768, sym::hash_to_scalar_raw) => sym::_bhp768_hash_to_scalar_raw, 777 778 (sym::BHP1024, sym::hash_to_address) => sym::_bhp1024_hash_to_address, 779 (sym::BHP1024, sym::hash_to_field) => sym::_bhp1024_hash_to_field, 780 (sym::BHP1024, sym::hash_to_group) => sym::_bhp1024_hash_to_group, 781 (sym::BHP1024, sym::hash_to_i8) => sym::_bhp1024_hash_to_i8, 782 (sym::BHP1024, sym::hash_to_i16) => sym::_bhp1024_hash_to_i16, 783 (sym::BHP1024, sym::hash_to_i32) => sym::_bhp1024_hash_to_i32, 784 (sym::BHP1024, sym::hash_to_i64) => sym::_bhp1024_hash_to_i64, 785 (sym::BHP1024, sym::hash_to_i128) => sym::_bhp1024_hash_to_i128, 786 (sym::BHP1024, sym::hash_to_u8) => sym::_bhp1024_hash_to_u8, 787 (sym::BHP1024, sym::hash_to_u16) => sym::_bhp1024_hash_to_u16, 788 (sym::BHP1024, sym::hash_to_u32) => sym::_bhp1024_hash_to_u32, 789 (sym::BHP1024, sym::hash_to_u64) => sym::_bhp1024_hash_to_u64, 790 (sym::BHP1024, sym::hash_to_u128) => sym::_bhp1024_hash_to_u128, 791 (sym::BHP1024, sym::hash_to_scalar) => sym::_bhp1024_hash_to_scalar, 792 (sym::BHP1024, sym::hash_to_address_raw) => sym::_bhp1024_hash_to_address_raw, 793 (sym::BHP1024, sym::hash_to_field_raw) => sym::_bhp1024_hash_to_field_raw, 794 (sym::BHP1024, sym::hash_to_group_raw) => sym::_bhp1024_hash_to_group_raw, 795 (sym::BHP1024, sym::hash_to_i8_raw) => sym::_bhp1024_hash_to_i8_raw, 796 (sym::BHP1024, sym::hash_to_i16_raw) => sym::_bhp1024_hash_to_i16_raw, 797 (sym::BHP1024, sym::hash_to_i32_raw) => sym::_bhp1024_hash_to_i32_raw, 798 (sym::BHP1024, sym::hash_to_i64_raw) => sym::_bhp1024_hash_to_i64_raw, 799 (sym::BHP1024, sym::hash_to_i128_raw) => sym::_bhp1024_hash_to_i128_raw, 800 (sym::BHP1024, sym::hash_to_u8_raw) => sym::_bhp1024_hash_to_u8_raw, 801 (sym::BHP1024, sym::hash_to_u16_raw) => sym::_bhp1024_hash_to_u16_raw, 802 (sym::BHP1024, sym::hash_to_u32_raw) => sym::_bhp1024_hash_to_u32_raw, 803 (sym::BHP1024, sym::hash_to_u64_raw) => sym::_bhp1024_hash_to_u64_raw, 804 (sym::BHP1024, sym::hash_to_u128_raw) => sym::_bhp1024_hash_to_u128_raw, 805 (sym::BHP1024, sym::hash_to_scalar_raw) => sym::_bhp1024_hash_to_scalar_raw, 806 807 (sym::Keccak256, sym::hash_to_address) => sym::_keccak256_hash_to_address, 808 (sym::Keccak256, sym::hash_to_field) => sym::_keccak256_hash_to_field, 809 (sym::Keccak256, sym::hash_to_group) => sym::_keccak256_hash_to_group, 810 (sym::Keccak256, sym::hash_to_i8) => sym::_keccak256_hash_to_i8, 811 (sym::Keccak256, sym::hash_to_i16) => sym::_keccak256_hash_to_i16, 812 (sym::Keccak256, sym::hash_to_i32) => sym::_keccak256_hash_to_i32, 813 (sym::Keccak256, sym::hash_to_i64) => sym::_keccak256_hash_to_i64, 814 (sym::Keccak256, sym::hash_to_i128) => sym::_keccak256_hash_to_i128, 815 (sym::Keccak256, sym::hash_to_u8) => sym::_keccak256_hash_to_u8, 816 (sym::Keccak256, sym::hash_to_u16) => sym::_keccak256_hash_to_u16, 817 (sym::Keccak256, sym::hash_to_u32) => sym::_keccak256_hash_to_u32, 818 (sym::Keccak256, sym::hash_to_u64) => sym::_keccak256_hash_to_u64, 819 (sym::Keccak256, sym::hash_to_u128) => sym::_keccak256_hash_to_u128, 820 (sym::Keccak256, sym::hash_to_scalar) => sym::_keccak256_hash_to_scalar, 821 (sym::Keccak256, sym::hash_to_address_raw) => sym::_keccak256_hash_to_address_raw, 822 (sym::Keccak256, sym::hash_to_field_raw) => sym::_keccak256_hash_to_field_raw, 823 (sym::Keccak256, sym::hash_to_group_raw) => sym::_keccak256_hash_to_group_raw, 824 (sym::Keccak256, sym::hash_to_i8_raw) => sym::_keccak256_hash_to_i8_raw, 825 (sym::Keccak256, sym::hash_to_i16_raw) => sym::_keccak256_hash_to_i16_raw, 826 (sym::Keccak256, sym::hash_to_i32_raw) => sym::_keccak256_hash_to_i32_raw, 827 (sym::Keccak256, sym::hash_to_i64_raw) => sym::_keccak256_hash_to_i64_raw, 828 (sym::Keccak256, sym::hash_to_i128_raw) => sym::_keccak256_hash_to_i128_raw, 829 (sym::Keccak256, sym::hash_to_u8_raw) => sym::_keccak256_hash_to_u8_raw, 830 (sym::Keccak256, sym::hash_to_u16_raw) => sym::_keccak256_hash_to_u16_raw, 831 (sym::Keccak256, sym::hash_to_u32_raw) => sym::_keccak256_hash_to_u32_raw, 832 (sym::Keccak256, sym::hash_to_u64_raw) => sym::_keccak256_hash_to_u64_raw, 833 (sym::Keccak256, sym::hash_to_u128_raw) => sym::_keccak256_hash_to_u128_raw, 834 (sym::Keccak256, sym::hash_to_scalar_raw) => sym::_keccak256_hash_to_scalar_raw, 835 (sym::Keccak256, sym::hash_to_bits) => sym::_keccak256_hash_to_bits, 836 (sym::Keccak256, sym::hash_to_bits_raw) => sym::_keccak256_hash_to_bits_raw, 837 838 (sym::Keccak384, sym::hash_to_address) => sym::_keccak384_hash_to_address, 839 (sym::Keccak384, sym::hash_to_field) => sym::_keccak384_hash_to_field, 840 (sym::Keccak384, sym::hash_to_group) => sym::_keccak384_hash_to_group, 841 (sym::Keccak384, sym::hash_to_i8) => sym::_keccak384_hash_to_i8, 842 (sym::Keccak384, sym::hash_to_i16) => sym::_keccak384_hash_to_i16, 843 (sym::Keccak384, sym::hash_to_i32) => sym::_keccak384_hash_to_i32, 844 (sym::Keccak384, sym::hash_to_i64) => sym::_keccak384_hash_to_i64, 845 (sym::Keccak384, sym::hash_to_i128) => sym::_keccak384_hash_to_i128, 846 (sym::Keccak384, sym::hash_to_u8) => sym::_keccak384_hash_to_u8, 847 (sym::Keccak384, sym::hash_to_u16) => sym::_keccak384_hash_to_u16, 848 (sym::Keccak384, sym::hash_to_u32) => sym::_keccak384_hash_to_u32, 849 (sym::Keccak384, sym::hash_to_u64) => sym::_keccak384_hash_to_u64, 850 (sym::Keccak384, sym::hash_to_u128) => sym::_keccak384_hash_to_u128, 851 (sym::Keccak384, sym::hash_to_scalar) => sym::_keccak384_hash_to_scalar, 852 (sym::Keccak384, sym::hash_to_address_raw) => sym::_keccak384_hash_to_address_raw, 853 (sym::Keccak384, sym::hash_to_field_raw) => sym::_keccak384_hash_to_field_raw, 854 (sym::Keccak384, sym::hash_to_group_raw) => sym::_keccak384_hash_to_group_raw, 855 (sym::Keccak384, sym::hash_to_i8_raw) => sym::_keccak384_hash_to_i8_raw, 856 (sym::Keccak384, sym::hash_to_i16_raw) => sym::_keccak384_hash_to_i16_raw, 857 (sym::Keccak384, sym::hash_to_i32_raw) => sym::_keccak384_hash_to_i32_raw, 858 (sym::Keccak384, sym::hash_to_i64_raw) => sym::_keccak384_hash_to_i64_raw, 859 (sym::Keccak384, sym::hash_to_i128_raw) => sym::_keccak384_hash_to_i128_raw, 860 (sym::Keccak384, sym::hash_to_u8_raw) => sym::_keccak384_hash_to_u8_raw, 861 (sym::Keccak384, sym::hash_to_u16_raw) => sym::_keccak384_hash_to_u16_raw, 862 (sym::Keccak384, sym::hash_to_u32_raw) => sym::_keccak384_hash_to_u32_raw, 863 (sym::Keccak384, sym::hash_to_u64_raw) => sym::_keccak384_hash_to_u64_raw, 864 (sym::Keccak384, sym::hash_to_u128_raw) => sym::_keccak384_hash_to_u128_raw, 865 (sym::Keccak384, sym::hash_to_scalar_raw) => sym::_keccak384_hash_to_scalar_raw, 866 (sym::Keccak384, sym::hash_to_bits) => sym::_keccak384_hash_to_bits, 867 (sym::Keccak384, sym::hash_to_bits_raw) => sym::_keccak384_hash_to_bits_raw, 868 869 (sym::Keccak512, sym::hash_to_address) => sym::_keccak512_hash_to_address, 870 (sym::Keccak512, sym::hash_to_field) => sym::_keccak512_hash_to_field, 871 (sym::Keccak512, sym::hash_to_group) => sym::_keccak512_hash_to_group, 872 (sym::Keccak512, sym::hash_to_i8) => sym::_keccak512_hash_to_i8, 873 (sym::Keccak512, sym::hash_to_i16) => sym::_keccak512_hash_to_i16, 874 (sym::Keccak512, sym::hash_to_i32) => sym::_keccak512_hash_to_i32, 875 (sym::Keccak512, sym::hash_to_i64) => sym::_keccak512_hash_to_i64, 876 (sym::Keccak512, sym::hash_to_i128) => sym::_keccak512_hash_to_i128, 877 (sym::Keccak512, sym::hash_to_u8) => sym::_keccak512_hash_to_u8, 878 (sym::Keccak512, sym::hash_to_u16) => sym::_keccak512_hash_to_u16, 879 (sym::Keccak512, sym::hash_to_u32) => sym::_keccak512_hash_to_u32, 880 (sym::Keccak512, sym::hash_to_u64) => sym::_keccak512_hash_to_u64, 881 (sym::Keccak512, sym::hash_to_u128) => sym::_keccak512_hash_to_u128, 882 (sym::Keccak512, sym::hash_to_scalar) => sym::_keccak512_hash_to_scalar, 883 (sym::Keccak512, sym::hash_to_address_raw) => sym::_keccak512_hash_to_address_raw, 884 (sym::Keccak512, sym::hash_to_field_raw) => sym::_keccak512_hash_to_field_raw, 885 (sym::Keccak512, sym::hash_to_group_raw) => sym::_keccak512_hash_to_group_raw, 886 (sym::Keccak512, sym::hash_to_i8_raw) => sym::_keccak512_hash_to_i8_raw, 887 (sym::Keccak512, sym::hash_to_i16_raw) => sym::_keccak512_hash_to_i16_raw, 888 (sym::Keccak512, sym::hash_to_i32_raw) => sym::_keccak512_hash_to_i32_raw, 889 (sym::Keccak512, sym::hash_to_i64_raw) => sym::_keccak512_hash_to_i64_raw, 890 (sym::Keccak512, sym::hash_to_i128_raw) => sym::_keccak512_hash_to_i128_raw, 891 (sym::Keccak512, sym::hash_to_u8_raw) => sym::_keccak512_hash_to_u8_raw, 892 (sym::Keccak512, sym::hash_to_u16_raw) => sym::_keccak512_hash_to_u16_raw, 893 (sym::Keccak512, sym::hash_to_u32_raw) => sym::_keccak512_hash_to_u32_raw, 894 (sym::Keccak512, sym::hash_to_u64_raw) => sym::_keccak512_hash_to_u64_raw, 895 (sym::Keccak512, sym::hash_to_u128_raw) => sym::_keccak512_hash_to_u128_raw, 896 (sym::Keccak512, sym::hash_to_scalar_raw) => sym::_keccak512_hash_to_scalar_raw, 897 (sym::Keccak512, sym::hash_to_bits) => sym::_keccak512_hash_to_bits, 898 (sym::Keccak512, sym::hash_to_bits_raw) => sym::_keccak512_hash_to_bits_raw, 899 900 (sym::Pedersen64, sym::hash_to_address) => sym::_pedersen64_hash_to_address, 901 (sym::Pedersen64, sym::hash_to_field) => sym::_pedersen64_hash_to_field, 902 (sym::Pedersen64, sym::hash_to_group) => sym::_pedersen64_hash_to_group, 903 (sym::Pedersen64, sym::hash_to_i8) => sym::_pedersen64_hash_to_i8, 904 (sym::Pedersen64, sym::hash_to_i16) => sym::_pedersen64_hash_to_i16, 905 (sym::Pedersen64, sym::hash_to_i32) => sym::_pedersen64_hash_to_i32, 906 (sym::Pedersen64, sym::hash_to_i64) => sym::_pedersen64_hash_to_i64, 907 (sym::Pedersen64, sym::hash_to_i128) => sym::_pedersen64_hash_to_i128, 908 (sym::Pedersen64, sym::hash_to_u8) => sym::_pedersen64_hash_to_u8, 909 (sym::Pedersen64, sym::hash_to_u16) => sym::_pedersen64_hash_to_u16, 910 (sym::Pedersen64, sym::hash_to_u32) => sym::_pedersen64_hash_to_u32, 911 (sym::Pedersen64, sym::hash_to_u64) => sym::_pedersen64_hash_to_u64, 912 (sym::Pedersen64, sym::hash_to_u128) => sym::_pedersen64_hash_to_u128, 913 (sym::Pedersen64, sym::hash_to_scalar) => sym::_pedersen64_hash_to_scalar, 914 (sym::Pedersen64, sym::hash_to_address_raw) => sym::_pedersen64_hash_to_address_raw, 915 (sym::Pedersen64, sym::hash_to_field_raw) => sym::_pedersen64_hash_to_field_raw, 916 (sym::Pedersen64, sym::hash_to_group_raw) => sym::_pedersen64_hash_to_group_raw, 917 (sym::Pedersen64, sym::hash_to_i8_raw) => sym::_pedersen64_hash_to_i8_raw, 918 (sym::Pedersen64, sym::hash_to_i16_raw) => sym::_pedersen64_hash_to_i16_raw, 919 (sym::Pedersen64, sym::hash_to_i32_raw) => sym::_pedersen64_hash_to_i32_raw, 920 (sym::Pedersen64, sym::hash_to_i64_raw) => sym::_pedersen64_hash_to_i64_raw, 921 (sym::Pedersen64, sym::hash_to_i128_raw) => sym::_pedersen64_hash_to_i128_raw, 922 (sym::Pedersen64, sym::hash_to_u8_raw) => sym::_pedersen64_hash_to_u8_raw, 923 (sym::Pedersen64, sym::hash_to_u16_raw) => sym::_pedersen64_hash_to_u16_raw, 924 (sym::Pedersen64, sym::hash_to_u32_raw) => sym::_pedersen64_hash_to_u32_raw, 925 (sym::Pedersen64, sym::hash_to_u64_raw) => sym::_pedersen64_hash_to_u64_raw, 926 (sym::Pedersen64, sym::hash_to_u128_raw) => sym::_pedersen64_hash_to_u128_raw, 927 (sym::Pedersen64, sym::hash_to_scalar_raw) => sym::_pedersen64_hash_to_scalar_raw, 928 929 (sym::Pedersen128, sym::hash_to_address) => sym::_pedersen128_hash_to_address, 930 (sym::Pedersen128, sym::hash_to_field) => sym::_pedersen128_hash_to_field, 931 (sym::Pedersen128, sym::hash_to_group) => sym::_pedersen128_hash_to_group, 932 (sym::Pedersen128, sym::hash_to_i8) => sym::_pedersen128_hash_to_i8, 933 (sym::Pedersen128, sym::hash_to_i16) => sym::_pedersen128_hash_to_i16, 934 (sym::Pedersen128, sym::hash_to_i32) => sym::_pedersen128_hash_to_i32, 935 (sym::Pedersen128, sym::hash_to_i64) => sym::_pedersen128_hash_to_i64, 936 (sym::Pedersen128, sym::hash_to_i128) => sym::_pedersen128_hash_to_i128, 937 (sym::Pedersen128, sym::hash_to_u8) => sym::_pedersen128_hash_to_u8, 938 (sym::Pedersen128, sym::hash_to_u16) => sym::_pedersen128_hash_to_u16, 939 (sym::Pedersen128, sym::hash_to_u32) => sym::_pedersen128_hash_to_u32, 940 (sym::Pedersen128, sym::hash_to_u64) => sym::_pedersen128_hash_to_u64, 941 (sym::Pedersen128, sym::hash_to_u128) => sym::_pedersen128_hash_to_u128, 942 (sym::Pedersen128, sym::hash_to_scalar) => sym::_pedersen128_hash_to_scalar, 943 (sym::Pedersen128, sym::hash_to_address_raw) => sym::_pedersen128_hash_to_address_raw, 944 (sym::Pedersen128, sym::hash_to_field_raw) => sym::_pedersen128_hash_to_field_raw, 945 (sym::Pedersen128, sym::hash_to_group_raw) => sym::_pedersen128_hash_to_group_raw, 946 (sym::Pedersen128, sym::hash_to_i8_raw) => sym::_pedersen128_hash_to_i8_raw, 947 (sym::Pedersen128, sym::hash_to_i16_raw) => sym::_pedersen128_hash_to_i16_raw, 948 (sym::Pedersen128, sym::hash_to_i32_raw) => sym::_pedersen128_hash_to_i32_raw, 949 (sym::Pedersen128, sym::hash_to_i64_raw) => sym::_pedersen128_hash_to_i64_raw, 950 (sym::Pedersen128, sym::hash_to_i128_raw) => sym::_pedersen128_hash_to_i128_raw, 951 (sym::Pedersen128, sym::hash_to_u8_raw) => sym::_pedersen128_hash_to_u8_raw, 952 (sym::Pedersen128, sym::hash_to_u16_raw) => sym::_pedersen128_hash_to_u16_raw, 953 (sym::Pedersen128, sym::hash_to_u32_raw) => sym::_pedersen128_hash_to_u32_raw, 954 (sym::Pedersen128, sym::hash_to_u64_raw) => sym::_pedersen128_hash_to_u64_raw, 955 (sym::Pedersen128, sym::hash_to_u128_raw) => sym::_pedersen128_hash_to_u128_raw, 956 (sym::Pedersen128, sym::hash_to_scalar_raw) => sym::_pedersen128_hash_to_scalar_raw, 957 958 (sym::Poseidon2, sym::hash_to_address) => sym::_poseidon2_hash_to_address, 959 (sym::Poseidon2, sym::hash_to_field) => sym::_poseidon2_hash_to_field, 960 (sym::Poseidon2, sym::hash_to_group) => sym::_poseidon2_hash_to_group, 961 (sym::Poseidon2, sym::hash_to_i8) => sym::_poseidon2_hash_to_i8, 962 (sym::Poseidon2, sym::hash_to_i16) => sym::_poseidon2_hash_to_i16, 963 (sym::Poseidon2, sym::hash_to_i32) => sym::_poseidon2_hash_to_i32, 964 (sym::Poseidon2, sym::hash_to_i64) => sym::_poseidon2_hash_to_i64, 965 (sym::Poseidon2, sym::hash_to_i128) => sym::_poseidon2_hash_to_i128, 966 (sym::Poseidon2, sym::hash_to_u8) => sym::_poseidon2_hash_to_u8, 967 (sym::Poseidon2, sym::hash_to_u16) => sym::_poseidon2_hash_to_u16, 968 (sym::Poseidon2, sym::hash_to_u32) => sym::_poseidon2_hash_to_u32, 969 (sym::Poseidon2, sym::hash_to_u64) => sym::_poseidon2_hash_to_u64, 970 (sym::Poseidon2, sym::hash_to_u128) => sym::_poseidon2_hash_to_u128, 971 (sym::Poseidon2, sym::hash_to_scalar) => sym::_poseidon2_hash_to_scalar, 972 (sym::Poseidon2, sym::hash_to_address_raw) => sym::_poseidon2_hash_to_address_raw, 973 (sym::Poseidon2, sym::hash_to_field_raw) => sym::_poseidon2_hash_to_field_raw, 974 (sym::Poseidon2, sym::hash_to_group_raw) => sym::_poseidon2_hash_to_group_raw, 975 (sym::Poseidon2, sym::hash_to_i8_raw) => sym::_poseidon2_hash_to_i8_raw, 976 (sym::Poseidon2, sym::hash_to_i16_raw) => sym::_poseidon2_hash_to_i16_raw, 977 (sym::Poseidon2, sym::hash_to_i32_raw) => sym::_poseidon2_hash_to_i32_raw, 978 (sym::Poseidon2, sym::hash_to_i64_raw) => sym::_poseidon2_hash_to_i64_raw, 979 (sym::Poseidon2, sym::hash_to_i128_raw) => sym::_poseidon2_hash_to_i128_raw, 980 (sym::Poseidon2, sym::hash_to_u8_raw) => sym::_poseidon2_hash_to_u8_raw, 981 (sym::Poseidon2, sym::hash_to_u16_raw) => sym::_poseidon2_hash_to_u16_raw, 982 (sym::Poseidon2, sym::hash_to_u32_raw) => sym::_poseidon2_hash_to_u32_raw, 983 (sym::Poseidon2, sym::hash_to_u64_raw) => sym::_poseidon2_hash_to_u64_raw, 984 (sym::Poseidon2, sym::hash_to_u128_raw) => sym::_poseidon2_hash_to_u128_raw, 985 (sym::Poseidon2, sym::hash_to_scalar_raw) => sym::_poseidon2_hash_to_scalar_raw, 986 987 (sym::Poseidon4, sym::hash_to_address) => sym::_poseidon4_hash_to_address, 988 (sym::Poseidon4, sym::hash_to_field) => sym::_poseidon4_hash_to_field, 989 (sym::Poseidon4, sym::hash_to_group) => sym::_poseidon4_hash_to_group, 990 (sym::Poseidon4, sym::hash_to_i8) => sym::_poseidon4_hash_to_i8, 991 (sym::Poseidon4, sym::hash_to_i16) => sym::_poseidon4_hash_to_i16, 992 (sym::Poseidon4, sym::hash_to_i32) => sym::_poseidon4_hash_to_i32, 993 (sym::Poseidon4, sym::hash_to_i64) => sym::_poseidon4_hash_to_i64, 994 (sym::Poseidon4, sym::hash_to_i128) => sym::_poseidon4_hash_to_i128, 995 (sym::Poseidon4, sym::hash_to_u8) => sym::_poseidon4_hash_to_u8, 996 (sym::Poseidon4, sym::hash_to_u16) => sym::_poseidon4_hash_to_u16, 997 (sym::Poseidon4, sym::hash_to_u32) => sym::_poseidon4_hash_to_u32, 998 (sym::Poseidon4, sym::hash_to_u64) => sym::_poseidon4_hash_to_u64, 999 (sym::Poseidon4, sym::hash_to_u128) => sym::_poseidon4_hash_to_u128, 1000 (sym::Poseidon4, sym::hash_to_scalar) => sym::_poseidon4_hash_to_scalar, 1001 (sym::Poseidon4, sym::hash_to_address_raw) => sym::_poseidon4_hash_to_address_raw, 1002 (sym::Poseidon4, sym::hash_to_field_raw) => sym::_poseidon4_hash_to_field_raw, 1003 (sym::Poseidon4, sym::hash_to_group_raw) => sym::_poseidon4_hash_to_group_raw, 1004 (sym::Poseidon4, sym::hash_to_i8_raw) => sym::_poseidon4_hash_to_i8_raw, 1005 (sym::Poseidon4, sym::hash_to_i16_raw) => sym::_poseidon4_hash_to_i16_raw, 1006 (sym::Poseidon4, sym::hash_to_i32_raw) => sym::_poseidon4_hash_to_i32_raw, 1007 (sym::Poseidon4, sym::hash_to_i64_raw) => sym::_poseidon4_hash_to_i64_raw, 1008 (sym::Poseidon4, sym::hash_to_i128_raw) => sym::_poseidon4_hash_to_i128_raw, 1009 (sym::Poseidon4, sym::hash_to_u8_raw) => sym::_poseidon4_hash_to_u8_raw, 1010 (sym::Poseidon4, sym::hash_to_u16_raw) => sym::_poseidon4_hash_to_u16_raw, 1011 (sym::Poseidon4, sym::hash_to_u32_raw) => sym::_poseidon4_hash_to_u32_raw, 1012 (sym::Poseidon4, sym::hash_to_u64_raw) => sym::_poseidon4_hash_to_u64_raw, 1013 (sym::Poseidon4, sym::hash_to_u128_raw) => sym::_poseidon4_hash_to_u128_raw, 1014 (sym::Poseidon4, sym::hash_to_scalar_raw) => sym::_poseidon4_hash_to_scalar_raw, 1015 1016 (sym::Poseidon8, sym::hash_to_address) => sym::_poseidon8_hash_to_address, 1017 (sym::Poseidon8, sym::hash_to_field) => sym::_poseidon8_hash_to_field, 1018 (sym::Poseidon8, sym::hash_to_group) => sym::_poseidon8_hash_to_group, 1019 (sym::Poseidon8, sym::hash_to_i8) => sym::_poseidon8_hash_to_i8, 1020 (sym::Poseidon8, sym::hash_to_i16) => sym::_poseidon8_hash_to_i16, 1021 (sym::Poseidon8, sym::hash_to_i32) => sym::_poseidon8_hash_to_i32, 1022 (sym::Poseidon8, sym::hash_to_i64) => sym::_poseidon8_hash_to_i64, 1023 (sym::Poseidon8, sym::hash_to_i128) => sym::_poseidon8_hash_to_i128, 1024 (sym::Poseidon8, sym::hash_to_u8) => sym::_poseidon8_hash_to_u8, 1025 (sym::Poseidon8, sym::hash_to_u16) => sym::_poseidon8_hash_to_u16, 1026 (sym::Poseidon8, sym::hash_to_u32) => sym::_poseidon8_hash_to_u32, 1027 (sym::Poseidon8, sym::hash_to_u64) => sym::_poseidon8_hash_to_u64, 1028 (sym::Poseidon8, sym::hash_to_u128) => sym::_poseidon8_hash_to_u128, 1029 (sym::Poseidon8, sym::hash_to_scalar) => sym::_poseidon8_hash_to_scalar, 1030 (sym::Poseidon8, sym::hash_to_address_raw) => sym::_poseidon8_hash_to_address_raw, 1031 (sym::Poseidon8, sym::hash_to_field_raw) => sym::_poseidon8_hash_to_field_raw, 1032 (sym::Poseidon8, sym::hash_to_group_raw) => sym::_poseidon8_hash_to_group_raw, 1033 (sym::Poseidon8, sym::hash_to_i8_raw) => sym::_poseidon8_hash_to_i8_raw, 1034 (sym::Poseidon8, sym::hash_to_i16_raw) => sym::_poseidon8_hash_to_i16_raw, 1035 (sym::Poseidon8, sym::hash_to_i32_raw) => sym::_poseidon8_hash_to_i32_raw, 1036 (sym::Poseidon8, sym::hash_to_i64_raw) => sym::_poseidon8_hash_to_i64_raw, 1037 (sym::Poseidon8, sym::hash_to_i128_raw) => sym::_poseidon8_hash_to_i128_raw, 1038 (sym::Poseidon8, sym::hash_to_u8_raw) => sym::_poseidon8_hash_to_u8_raw, 1039 (sym::Poseidon8, sym::hash_to_u16_raw) => sym::_poseidon8_hash_to_u16_raw, 1040 (sym::Poseidon8, sym::hash_to_u32_raw) => sym::_poseidon8_hash_to_u32_raw, 1041 (sym::Poseidon8, sym::hash_to_u64_raw) => sym::_poseidon8_hash_to_u64_raw, 1042 (sym::Poseidon8, sym::hash_to_u128_raw) => sym::_poseidon8_hash_to_u128_raw, 1043 (sym::Poseidon8, sym::hash_to_scalar_raw) => sym::_poseidon8_hash_to_scalar_raw, 1044 1045 (sym::SHA3_256, sym::hash_to_address) => sym::_sha3_256_hash_to_address, 1046 (sym::SHA3_256, sym::hash_to_field) => sym::_sha3_256_hash_to_field, 1047 (sym::SHA3_256, sym::hash_to_group) => sym::_sha3_256_hash_to_group, 1048 (sym::SHA3_256, sym::hash_to_i8) => sym::_sha3_256_hash_to_i8, 1049 (sym::SHA3_256, sym::hash_to_i16) => sym::_sha3_256_hash_to_i16, 1050 (sym::SHA3_256, sym::hash_to_i32) => sym::_sha3_256_hash_to_i32, 1051 (sym::SHA3_256, sym::hash_to_i64) => sym::_sha3_256_hash_to_i64, 1052 (sym::SHA3_256, sym::hash_to_i128) => sym::_sha3_256_hash_to_i128, 1053 (sym::SHA3_256, sym::hash_to_u8) => sym::_sha3_256_hash_to_u8, 1054 (sym::SHA3_256, sym::hash_to_u16) => sym::_sha3_256_hash_to_u16, 1055 (sym::SHA3_256, sym::hash_to_u32) => sym::_sha3_256_hash_to_u32, 1056 (sym::SHA3_256, sym::hash_to_u64) => sym::_sha3_256_hash_to_u64, 1057 (sym::SHA3_256, sym::hash_to_u128) => sym::_sha3_256_hash_to_u128, 1058 (sym::SHA3_256, sym::hash_to_scalar) => sym::_sha3_256_hash_to_scalar, 1059 (sym::SHA3_256, sym::hash_to_address_raw) => sym::_sha3_256_hash_to_address_raw, 1060 (sym::SHA3_256, sym::hash_to_field_raw) => sym::_sha3_256_hash_to_field_raw, 1061 (sym::SHA3_256, sym::hash_to_group_raw) => sym::_sha3_256_hash_to_group_raw, 1062 (sym::SHA3_256, sym::hash_to_i8_raw) => sym::_sha3_256_hash_to_i8_raw, 1063 (sym::SHA3_256, sym::hash_to_i16_raw) => sym::_sha3_256_hash_to_i16_raw, 1064 (sym::SHA3_256, sym::hash_to_i32_raw) => sym::_sha3_256_hash_to_i32_raw, 1065 (sym::SHA3_256, sym::hash_to_i64_raw) => sym::_sha3_256_hash_to_i64_raw, 1066 (sym::SHA3_256, sym::hash_to_i128_raw) => sym::_sha3_256_hash_to_i128_raw, 1067 (sym::SHA3_256, sym::hash_to_u8_raw) => sym::_sha3_256_hash_to_u8_raw, 1068 (sym::SHA3_256, sym::hash_to_u16_raw) => sym::_sha3_256_hash_to_u16_raw, 1069 (sym::SHA3_256, sym::hash_to_u32_raw) => sym::_sha3_256_hash_to_u32_raw, 1070 (sym::SHA3_256, sym::hash_to_u64_raw) => sym::_sha3_256_hash_to_u64_raw, 1071 (sym::SHA3_256, sym::hash_to_u128_raw) => sym::_sha3_256_hash_to_u128_raw, 1072 (sym::SHA3_256, sym::hash_to_scalar_raw) => sym::_sha3_256_hash_to_scalar_raw, 1073 (sym::SHA3_256, sym::hash_to_bits) => sym::_sha3_256_hash_to_bits, 1074 (sym::SHA3_256, sym::hash_to_bits_raw) => sym::_sha3_256_hash_to_bits_raw, 1075 1076 (sym::SHA3_384, sym::hash_to_address) => sym::_sha3_384_hash_to_address, 1077 (sym::SHA3_384, sym::hash_to_field) => sym::_sha3_384_hash_to_field, 1078 (sym::SHA3_384, sym::hash_to_group) => sym::_sha3_384_hash_to_group, 1079 (sym::SHA3_384, sym::hash_to_i8) => sym::_sha3_384_hash_to_i8, 1080 (sym::SHA3_384, sym::hash_to_i16) => sym::_sha3_384_hash_to_i16, 1081 (sym::SHA3_384, sym::hash_to_i32) => sym::_sha3_384_hash_to_i32, 1082 (sym::SHA3_384, sym::hash_to_i64) => sym::_sha3_384_hash_to_i64, 1083 (sym::SHA3_384, sym::hash_to_i128) => sym::_sha3_384_hash_to_i128, 1084 (sym::SHA3_384, sym::hash_to_u8) => sym::_sha3_384_hash_to_u8, 1085 (sym::SHA3_384, sym::hash_to_u16) => sym::_sha3_384_hash_to_u16, 1086 (sym::SHA3_384, sym::hash_to_u32) => sym::_sha3_384_hash_to_u32, 1087 (sym::SHA3_384, sym::hash_to_u64) => sym::_sha3_384_hash_to_u64, 1088 (sym::SHA3_384, sym::hash_to_u128) => sym::_sha3_384_hash_to_u128, 1089 (sym::SHA3_384, sym::hash_to_scalar) => sym::_sha3_384_hash_to_scalar, 1090 (sym::SHA3_384, sym::hash_to_address_raw) => sym::_sha3_384_hash_to_address_raw, 1091 (sym::SHA3_384, sym::hash_to_field_raw) => sym::_sha3_384_hash_to_field_raw, 1092 (sym::SHA3_384, sym::hash_to_group_raw) => sym::_sha3_384_hash_to_group_raw, 1093 (sym::SHA3_384, sym::hash_to_i8_raw) => sym::_sha3_384_hash_to_i8_raw, 1094 (sym::SHA3_384, sym::hash_to_i16_raw) => sym::_sha3_384_hash_to_i16_raw, 1095 (sym::SHA3_384, sym::hash_to_i32_raw) => sym::_sha3_384_hash_to_i32_raw, 1096 (sym::SHA3_384, sym::hash_to_i64_raw) => sym::_sha3_384_hash_to_i64_raw, 1097 (sym::SHA3_384, sym::hash_to_i128_raw) => sym::_sha3_384_hash_to_i128_raw, 1098 (sym::SHA3_384, sym::hash_to_u8_raw) => sym::_sha3_384_hash_to_u8_raw, 1099 (sym::SHA3_384, sym::hash_to_u16_raw) => sym::_sha3_384_hash_to_u16_raw, 1100 (sym::SHA3_384, sym::hash_to_u32_raw) => sym::_sha3_384_hash_to_u32_raw, 1101 (sym::SHA3_384, sym::hash_to_u64_raw) => sym::_sha3_384_hash_to_u64_raw, 1102 (sym::SHA3_384, sym::hash_to_u128_raw) => sym::_sha3_384_hash_to_u128_raw, 1103 (sym::SHA3_384, sym::hash_to_scalar_raw) => sym::_sha3_384_hash_to_scalar_raw, 1104 (sym::SHA3_384, sym::hash_to_bits) => sym::_sha3_384_hash_to_bits, 1105 (sym::SHA3_384, sym::hash_to_bits_raw) => sym::_sha3_384_hash_to_bits_raw, 1106 1107 (sym::SHA3_512, sym::hash_to_address) => sym::_sha3_512_hash_to_address, 1108 (sym::SHA3_512, sym::hash_to_field) => sym::_sha3_512_hash_to_field, 1109 (sym::SHA3_512, sym::hash_to_group) => sym::_sha3_512_hash_to_group, 1110 (sym::SHA3_512, sym::hash_to_i8) => sym::_sha3_512_hash_to_i8, 1111 (sym::SHA3_512, sym::hash_to_i16) => sym::_sha3_512_hash_to_i16, 1112 (sym::SHA3_512, sym::hash_to_i32) => sym::_sha3_512_hash_to_i32, 1113 (sym::SHA3_512, sym::hash_to_i64) => sym::_sha3_512_hash_to_i64, 1114 (sym::SHA3_512, sym::hash_to_i128) => sym::_sha3_512_hash_to_i128, 1115 (sym::SHA3_512, sym::hash_to_u8) => sym::_sha3_512_hash_to_u8, 1116 (sym::SHA3_512, sym::hash_to_u16) => sym::_sha3_512_hash_to_u16, 1117 (sym::SHA3_512, sym::hash_to_u32) => sym::_sha3_512_hash_to_u32, 1118 (sym::SHA3_512, sym::hash_to_u64) => sym::_sha3_512_hash_to_u64, 1119 (sym::SHA3_512, sym::hash_to_u128) => sym::_sha3_512_hash_to_u128, 1120 (sym::SHA3_512, sym::hash_to_scalar) => sym::_sha3_512_hash_to_scalar, 1121 (sym::SHA3_512, sym::hash_to_address_raw) => sym::_sha3_512_hash_to_address_raw, 1122 (sym::SHA3_512, sym::hash_to_field_raw) => sym::_sha3_512_hash_to_field_raw, 1123 (sym::SHA3_512, sym::hash_to_group_raw) => sym::_sha3_512_hash_to_group_raw, 1124 (sym::SHA3_512, sym::hash_to_i8_raw) => sym::_sha3_512_hash_to_i8_raw, 1125 (sym::SHA3_512, sym::hash_to_i16_raw) => sym::_sha3_512_hash_to_i16_raw, 1126 (sym::SHA3_512, sym::hash_to_i32_raw) => sym::_sha3_512_hash_to_i32_raw, 1127 (sym::SHA3_512, sym::hash_to_i64_raw) => sym::_sha3_512_hash_to_i64_raw, 1128 (sym::SHA3_512, sym::hash_to_i128_raw) => sym::_sha3_512_hash_to_i128_raw, 1129 (sym::SHA3_512, sym::hash_to_u8_raw) => sym::_sha3_512_hash_to_u8_raw, 1130 (sym::SHA3_512, sym::hash_to_u16_raw) => sym::_sha3_512_hash_to_u16_raw, 1131 (sym::SHA3_512, sym::hash_to_u32_raw) => sym::_sha3_512_hash_to_u32_raw, 1132 (sym::SHA3_512, sym::hash_to_u64_raw) => sym::_sha3_512_hash_to_u64_raw, 1133 (sym::SHA3_512, sym::hash_to_u128_raw) => sym::_sha3_512_hash_to_u128_raw, 1134 (sym::SHA3_512, sym::hash_to_scalar_raw) => sym::_sha3_512_hash_to_scalar_raw, 1135 (sym::SHA3_512, sym::hash_to_bits) => sym::_sha3_512_hash_to_bits, 1136 (sym::SHA3_512, sym::hash_to_bits_raw) => sym::_sha3_512_hash_to_bits_raw, 1137 1138 (sym::ECDSA, sym::verify_digest) => sym::_ecdsa_verify_digest, 1139 (sym::ECDSA, sym::verify_digest_eth) => sym::_ecdsa_verify_digest_eth, 1140 (sym::ECDSA, sym::verify_keccak256) => sym::_ecdsa_verify_keccak256, 1141 (sym::ECDSA, sym::verify_keccak256_raw) => sym::_ecdsa_verify_keccak256_raw, 1142 (sym::ECDSA, sym::verify_keccak256_eth) => sym::_ecdsa_verify_keccak256_eth, 1143 (sym::ECDSA, sym::verify_keccak384) => sym::_ecdsa_verify_keccak384, 1144 (sym::ECDSA, sym::verify_keccak384_raw) => sym::_ecdsa_verify_keccak384_raw, 1145 (sym::ECDSA, sym::verify_keccak384_eth) => sym::_ecdsa_verify_keccak384_eth, 1146 (sym::ECDSA, sym::verify_keccak512) => sym::_ecdsa_verify_keccak512, 1147 (sym::ECDSA, sym::verify_keccak512_raw) => sym::_ecdsa_verify_keccak512_raw, 1148 (sym::ECDSA, sym::verify_keccak512_eth) => sym::_ecdsa_verify_keccak512_eth, 1149 (sym::ECDSA, sym::verify_sha3_256) => sym::_ecdsa_verify_sha3_256, 1150 (sym::ECDSA, sym::verify_sha3_256_raw) => sym::_ecdsa_verify_sha3_256_raw, 1151 (sym::ECDSA, sym::verify_sha3_256_eth) => sym::_ecdsa_verify_sha3_256_eth, 1152 (sym::ECDSA, sym::verify_sha3_384) => sym::_ecdsa_verify_sha3_384, 1153 (sym::ECDSA, sym::verify_sha3_384_raw) => sym::_ecdsa_verify_sha3_384_raw, 1154 (sym::ECDSA, sym::verify_sha3_384_eth) => sym::_ecdsa_verify_sha3_384_eth, 1155 (sym::ECDSA, sym::verify_sha3_512) => sym::_ecdsa_verify_sha3_512, 1156 (sym::ECDSA, sym::verify_sha3_512_raw) => sym::_ecdsa_verify_sha3_512_raw, 1157 (sym::ECDSA, sym::verify_sha3_512_eth) => sym::_ecdsa_verify_sha3_512_eth, 1158 1159 1160 (sym::Mapping, sym::get_or_use) => sym::_mapping_get_or_use, 1161 (sym::Mapping, sym::remove) => sym::_mapping_remove, 1162 (sym::Mapping, sym::contains) => sym::_mapping_contains, 1163 (sym::Mapping, sym::get) => sym::_mapping_get, 1164 (sym::Mapping, sym::set) => sym::_mapping_set, 1165 1166 (sym::Optional, sym::unwrap) => sym::_optional_unwrap, 1167 (sym::Optional, sym::unwrap_or) => sym::_optional_unwrap_or, 1168 1169 (sym::Vector, sym::push) => sym::_vector_push, 1170 (sym::Vector, sym::len) => sym::_vector_len, 1171 (sym::Vector, sym::clear) => sym::_vector_clear, 1172 (sym::Vector, sym::pop) => sym::_vector_pop, 1173 (sym::Vector, sym::swap_remove) => sym::_vector_swap_remove, 1174 (sym::Vector, sym::get) => sym::_mapping_get, 1175 (sym::Vector, sym::set) => sym::_mapping_set, 1176 1177 (sym::group, sym::to_x_coordinate) => sym::_group_to_x_coordinate, 1178 (sym::group, sym::to_y_coordinate) => sym::_group_to_y_coordinate, 1179 1180 (sym::ProgramCore, sym::checksum) => sym::_program_checksum, 1181 (sym::ProgramCore, sym::edition) => sym::_program_edition, 1182 (sym::ProgramCore, sym::program_owner) => sym::_program_owner, 1183 1184 (sym::signature, sym::verify) => sym::_signature_verify, 1185 (sym::Future, sym::Await) => sym::_future_await, 1186 1187 (sym::Serialize, sym::to_bits) => sym::_serialize_to_bits, 1188 (sym::Serialize, sym::to_bits_raw) => sym::_serialize_to_bits_raw, 1189 1190 (sym::CheatCode, sym::print_mapping) => sym::_cheat_code_print_mapping, 1191 (sym::CheatCode, sym::set_block_height) => sym::_cheat_code_set_block_height, 1192 (sym::CheatCode, sym::set_block_timestamp) => sym::_cheat_code_set_block_timestamp, 1193 (sym::CheatCode, sym::set_signer) => sym::_cheat_code_set_signer, 1194 _ => return None, 1195 }) 1196 } 1197 1198 /// Returns the number of arguments required by the instruction. 1199 pub fn num_args(&self) -> usize { 1200 match self { 1201 Self::ChaChaRand(_) => 0, 1202 Self::GroupGen => 0, 1203 Self::SelfAddress => 0, 1204 Self::SelfCaller => 0, 1205 Self::SelfChecksum => 0, 1206 Self::SelfEdition => 0, 1207 Self::SelfId => 0, 1208 Self::SelfProgramOwner => 0, 1209 Self::SelfSigner => 0, 1210 Self::BlockHeight => 0, 1211 Self::BlockTimestamp => 0, 1212 Self::NetworkId => 0, 1213 1214 Self::Commit(_, _) => 2, 1215 Self::Hash(_, _) => 1, 1216 Self::ECDSAVerify(_) => 3, 1217 1218 Self::MappingGet => 2, 1219 Self::MappingSet => 3, 1220 Self::MappingGetOrUse => 3, 1221 Self::MappingRemove => 2, 1222 Self::MappingContains => 2, 1223 1224 Self::OptionalUnwrap => 1, 1225 Self::OptionalUnwrapOr => 2, 1226 1227 Self::VectorGet => 2, 1228 Self::VectorSet => 3, 1229 Self::VectorPush => 2, 1230 Self::VectorLen => 1, 1231 Self::VectorClear => 1, 1232 Self::VectorPop => 1, 1233 Self::VectorSwapRemove => 2, 1234 1235 Self::GroupToXCoordinate => 1, 1236 Self::GroupToYCoordinate => 1, 1237 1238 Self::SignatureVerify => 3, 1239 Self::FutureAwait => 1, 1240 1241 Self::ProgramChecksum => 1, 1242 Self::ProgramEdition => 1, 1243 Self::ProgramOwner => 1, 1244 1245 Self::Serialize(_) => 1, 1246 Self::Deserialize(_, _) => 1, 1247 1248 Self::CheatCodePrintMapping => 1, 1249 Self::CheatCodeSetBlockHeight => 1, 1250 Self::CheatCodeSetBlockTimestamp => 1, 1251 Self::CheatCodeSetSigner => 1, 1252 } 1253 } 1254 1255 /// Returns whether or not this function is finalize command. 1256 pub fn is_finalize_command(&self) -> bool { 1257 match self { 1258 Intrinsic::FutureAwait 1259 | Intrinsic::ChaChaRand(_) 1260 | Intrinsic::ECDSAVerify(_) 1261 | Intrinsic::MappingGet 1262 | Intrinsic::MappingSet 1263 | Intrinsic::MappingGetOrUse 1264 | Intrinsic::VectorGet 1265 | Intrinsic::VectorSet 1266 | Intrinsic::MappingRemove 1267 | Intrinsic::MappingContains 1268 | Intrinsic::ProgramChecksum 1269 | Intrinsic::ProgramEdition 1270 | Intrinsic::ProgramOwner 1271 | Intrinsic::VectorPush 1272 | Intrinsic::VectorLen 1273 | Intrinsic::VectorClear 1274 | Intrinsic::VectorPop 1275 | Intrinsic::VectorSwapRemove => true, 1276 Intrinsic::Commit(_, _) 1277 | Intrinsic::Hash(_, _) 1278 | Intrinsic::OptionalUnwrap 1279 | Intrinsic::OptionalUnwrapOr 1280 | Intrinsic::GroupToXCoordinate 1281 | Intrinsic::GroupToYCoordinate 1282 | Intrinsic::GroupGen 1283 | Intrinsic::SelfAddress 1284 | Intrinsic::SelfCaller 1285 | Intrinsic::SelfChecksum 1286 | Intrinsic::SelfEdition 1287 | Intrinsic::SelfId 1288 | Intrinsic::SelfProgramOwner 1289 | Intrinsic::SelfSigner 1290 | Intrinsic::BlockHeight 1291 | Intrinsic::BlockTimestamp 1292 | Intrinsic::NetworkId 1293 | Intrinsic::SignatureVerify 1294 | Intrinsic::Serialize(_) 1295 | Intrinsic::Deserialize(_, _) 1296 | Intrinsic::CheatCodePrintMapping 1297 | Intrinsic::CheatCodeSetBlockHeight 1298 | Intrinsic::CheatCodeSetBlockTimestamp 1299 | Intrinsic::CheatCodeSetSigner => false, 1300 } 1301 } 1302 1303 /// Returns whether or not this function has side effects 1304 pub fn is_pure(&self) -> bool { 1305 match self { 1306 Intrinsic::FutureAwait 1307 | Intrinsic::VectorSet 1308 | Intrinsic::VectorPush 1309 | Intrinsic::VectorClear 1310 | Intrinsic::CheatCodePrintMapping 1311 | Intrinsic::CheatCodeSetBlockHeight 1312 | Intrinsic::CheatCodeSetBlockTimestamp 1313 | Intrinsic::CheatCodeSetSigner 1314 | Intrinsic::VectorPop 1315 // Pedersen64 and Pedersen128 operations can fail for large inputs. 1316 | Intrinsic::Hash( 1317 HashVariant::HashPED64 1318 | HashVariant::HashPED64Raw 1319 | HashVariant::HashPED128 1320 | HashVariant::HashPED128Raw, 1321 _, 1322 ) 1323 // Mapping operations have side effects 1324 | Intrinsic::MappingRemove 1325 | Intrinsic::MappingGet 1326 | Intrinsic::MappingSet 1327 | Intrinsic::MappingGetOrUse 1328 | Intrinsic::MappingContains 1329 | Intrinsic::VectorSwapRemove => false, 1330 1331 Intrinsic::ChaChaRand(_) 1332 | Intrinsic::ECDSAVerify(_) 1333 | Intrinsic::ProgramChecksum 1334 | Intrinsic::ProgramEdition 1335 | Intrinsic::ProgramOwner 1336 | Intrinsic::VectorLen 1337 | Intrinsic::VectorGet 1338 | Intrinsic::Commit(_, _) 1339 | Intrinsic::Hash(_, _) 1340 | Intrinsic::OptionalUnwrap 1341 | Intrinsic::OptionalUnwrapOr 1342 | Intrinsic::GroupToXCoordinate 1343 | Intrinsic::GroupToYCoordinate 1344 | Intrinsic::GroupGen 1345 | Intrinsic::SelfAddress 1346 | Intrinsic::SelfCaller 1347 | Intrinsic::SelfChecksum 1348 | Intrinsic::SelfEdition 1349 | Intrinsic::SelfId 1350 | Intrinsic::SelfProgramOwner 1351 | Intrinsic::SelfSigner 1352 | Intrinsic::BlockHeight 1353 | Intrinsic::BlockTimestamp 1354 | Intrinsic::NetworkId 1355 | Intrinsic::SignatureVerify 1356 | Intrinsic::Serialize(_) 1357 | Intrinsic::Deserialize(_, _) => true, 1358 } 1359 } 1360 }