IR: /*=====================================================* * WARNING * * Solidity to Yul compilation is still EXPERIMENTAL * * It can result in LOSS OF FUNDS or worse * * !USE AT YOUR OWN RISK! * *=====================================================*/ /// @use-src 0:"exp_base_literal/input.sol", 1:"#utility.yul" object "C_81" { code { /// @src 0:82:370 mstore(64, 128) if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() } constructor_C_81() let _1 := allocate_unbounded() codecopy(_1, dataoffset("C_81_deployed"), datasize("C_81_deployed")) return(_1, datasize("C_81_deployed")) function allocate_unbounded() -> memPtr { memPtr := mload(64) } /// @src 0:82:370 function constructor_C_81() { /// @src 0:82:370 } /// @src 0:82:370 function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() { revert(0, 0) } } object "C_81_deployed" { code { /// @src 0:82:370 mstore(64, 128) if iszero(lt(calldatasize(), 4)) { let selector := shift_right_224_unsigned(calldataload(0)) switch selector case 0x70cb9605 { // f(uint256,uint256,uint256,uint256) if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() } let param_0, param_1, param_2, param_3 := abi_decode_tuple_t_uint256t_uint256t_uint256t_uint256(4, calldatasize()) let ret_0, ret_1, ret_2, ret_3 := fun_f_80(param_0, param_1, param_2, param_3) let memPos := allocate_unbounded() let memEnd := abi_encode_tuple_t_uint256_t_int256_t_uint256_t_uint256__to_t_uint256_t_int256_t_uint256_t_uint256__fromStack(memPos , ret_0, ret_1, ret_2, ret_3) return(memPos, sub(memEnd, memPos)) } default {} } if iszero(calldatasize()) { } revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74() function abi_decode_t_uint256(offset, end) -> value { value := calldataload(offset) validator_revert_t_uint256(value) } function abi_decode_tuple_t_uint256t_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3 { if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() } { let offset := 0 value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd) } { let offset := 32 value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd) } { let offset := 64 value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd) } { let offset := 96 value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd) } } function abi_encode_t_int256_to_t_int256_fromStack(value, pos) { mstore(pos, cleanup_t_int256(value)) } function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) { mstore(pos, cleanup_t_uint256(value)) } function abi_encode_tuple_t_uint256_t_int256_t_uint256_t_uint256__to_t_uint256_t_int256_t_uint256_t_uint256__fromStack(headStart , value0, value1, value2, value3) -> tail { tail := add(headStart, 128) abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0)) abi_encode_t_int256_to_t_int256_fromStack(value1, add(headStart, 32)) abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64)) abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96)) } function allocate_unbounded() -> memPtr { memPtr := mload(64) } function checked_exp_t_rational_0_by_1_t_uint256(exponent) -> power { exponent := cleanup_t_uint256(exponent) power := exp(0, exponent) } function checked_exp_t_rational_10_by_1_t_uint256(exponent) -> power { exponent := cleanup_t_uint256(exponent) if gt(exponent, 77) { panic_error_0x11() } power := exp(10, exponent) } function checked_exp_t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1_t_uint256(exponent) -> power { exponent := cleanup_t_uint256(exponent) if gt(exponent, 1) { panic_error_0x11() } power := exp(115792089237316195423570985008687907853269984665640564039457584007913129639935, exponent) } function checked_exp_t_rational_1_by_1_t_uint256(exponent) -> power { exponent := cleanup_t_uint256(exponent) power := exp(1, exponent) } function checked_exp_t_rational_2_by_1_t_uint256(exponent) -> power { exponent := cleanup_t_uint256(exponent) if gt(exponent, 255) { panic_error_0x11() } power := exp(2, exponent) } function checked_exp_t_rational_minus_1_by_1_t_uint256(exponent) -> power { exponent := cleanup_t_uint256(exponent) power := exp(115792089237316195423570985008687907853269984665640564039457584007913129639935, exponent) } function checked_exp_t_rational_minus_2_by_1_t_uint256(exponent) -> power { exponent := cleanup_t_uint256(exponent) if gt(exponent, 255) { panic_error_0x11() } power := exp(115792089237316195423570985008687907853269984665640564039457584007913129639934, exponent) } function cleanup_t_int256(value) -> cleaned { cleaned := value } function cleanup_t_uint256(value) -> cleaned { cleaned := value } function convert_t_rational_0_by_1_to_t_uint256(value) -> converted { converted := cleanup_t_uint256(value) } function convert_t_rational_10_by_1_to_t_uint256(value) -> converted { converted := cleanup_t_uint256(value) } function convert_t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1_to_t_uint256(value) -> converted { converted := cleanup_t_uint256(value) } function convert_t_rational_1_by_1_to_t_uint256(value) -> converted { converted := cleanup_t_uint256(value) } function convert_t_rational_2_by_1_to_t_uint256(value) -> converted { converted := cleanup_t_uint256(value) } function convert_t_rational_minus_1_by_1_to_t_int256(value) -> converted { converted := cleanup_t_int256(value) } function convert_t_rational_minus_2_by_1_to_t_int256(value) -> converted { converted := cleanup_t_int256(value) } /// @src 0:96:368 function fun_f_80(var_a_4, var_b_6, var_c_8, var_d_10) -> var__13, var__15, var__17, var__19 { /// @src 0:160:164 let zero_t_uint256_1 := zero_value_for_split_t_uint256() var__13 := zero_t_uint256_1 /// @src 0:166:169 let zero_t_int256_2 := zero_value_for_split_t_int256() var__15 := zero_t_int256_2 /// @src 0:171:175 let zero_t_uint256_3 := zero_value_for_split_t_uint256() var__17 := zero_t_uint256_3 /// @src 0:177:181 let zero_t_uint256_4 := zero_value_for_split_t_uint256() var__19 := zero_t_uint256_4 /// @src 0:196:197 let expr_23 := 0x02 /// @src 0:199:200 let _5 := var_a_4 let expr_24 := _5 /// @src 0:196:200 let _6 := convert_t_rational_2_by_1_to_t_uint256(expr_23) let expr_25 := checked_exp_t_rational_2_by_1_t_uint256(expr_24) /// @src 0:187:200 let var_w_22 := expr_25 /// @src 0:213:215 let expr_30 := 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe /// @src 0:212:216 let expr_31 := expr_30 /// @src 0:218:219 let _7 := var_b_6 let expr_32 := _7 /// @src 0:212:219 let _8 := convert_t_rational_minus_2_by_1_to_t_int256(expr_31) let expr_33 := checked_exp_t_rational_minus_2_by_1_t_uint256(expr_32) /// @src 0:204:219 let var_x_28 := expr_33 /// @src 0:232:234 let expr_37 := 0x0a /// @src 0:236:237 let _9 := var_c_8 let expr_38 := _9 /// @src 0:232:237 let _10 := convert_t_rational_10_by_1_to_t_uint256(expr_37) let expr_39 := checked_exp_t_rational_10_by_1_t_uint256(expr_38) /// @src 0:223:237 let var_y_36 := expr_39 /// @src 0:251:260 let expr_47 := 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff /// @src 0:250:262 let expr_48 := expr_47 /// @src 0:264:265 let _11 := var_d_10 let expr_49 := _11 /// @src 0:250:265 let _12 := convert_t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1_to_t_uint256(expr_48) let expr_50 := checked_exp_t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1_t_uint256(expr_49) /// @src 0:241:265 let var_z_42 := expr_50 /// @src 0:308:309 let expr_53 := 0x00 /// @src 0:307:310 let expr_54 := expr_53 /// @src 0:312:313 let _13 := var_a_4 let expr_55 := _13 /// @src 0:307:313 let _14 := convert_t_rational_0_by_1_to_t_uint256(expr_54) let expr_56 := checked_exp_t_rational_0_by_1_t_uint256(expr_55) /// @src 0:303:313 var_w_22 := expr_56 let expr_57 := expr_56 /// @src 0:322:324 let expr_61 := 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff /// @src 0:321:325 let expr_62 := expr_61 /// @src 0:327:328 let _15 := var_b_6 let expr_63 := _15 /// @src 0:321:328 let _16 := convert_t_rational_minus_1_by_1_to_t_int256(expr_62) let expr_64 := checked_exp_t_rational_minus_1_by_1_t_uint256(expr_63) /// @src 0:317:328 var_x_28 := expr_64 let expr_65 := expr_64 /// @src 0:336:337 let expr_68 := 0x01 /// @src 0:339:340 let _17 := var_c_8 let expr_69 := _17 /// @src 0:336:340 let _18 := convert_t_rational_1_by_1_to_t_uint256(expr_68) let expr_70 := checked_exp_t_rational_1_by_1_t_uint256(expr_69) /// @src 0:332:340 var_y_36 := expr_70 let expr_71 := expr_70 /// @src 0:353:354 let _19 := var_w_22 let expr_73 := _19 /// @src 0:352:364 let expr_77_component_1 := expr_73 /// @src 0:356:357 let _20 := var_x_28 let expr_74 := _20 /// @src 0:352:364 let expr_77_component_2 := expr_74 /// @src 0:359:360 let _21 := var_y_36 let expr_75 := _21 /// @src 0:352:364 let expr_77_component_3 := expr_75 /// @src 0:362:363 let _22 := var_z_42 let expr_76 := _22 /// @src 0:352:364 let expr_77_component_4 := expr_76 /// @src 0:345:364 var__13 := expr_77_component_1 var__15 := expr_77_component_2 var__17 := expr_77_component_3 var__19 := expr_77_component_4 leave } /// @src 0:82:370 function panic_error_0x11() { mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) mstore(4, 0x11) revert(0, 0x24) } function revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74() { revert(0, 0) } function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() { revert(0, 0) } function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() { revert(0, 0) } function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() { revert(0, 0) } function shift_right_224_unsigned(value) -> newValue { newValue := shr(224, value) } function validator_revert_t_uint256(value) { if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) } } function zero_value_for_split_t_int256() -> ret { ret := 0 } function zero_value_for_split_t_uint256() -> ret { ret := 0 } } data ".metadata" hex"" } }