@@ -157,11 +157,11 @@ td::Ref<vm::Tuple> prepare_vm_c7(SmartContract::Args args, td::Ref<vm::Cell> cod
157
157
td::make_refint (0 ), // TODO: // trans_lt:Integer
158
158
std::move (rand_seed_int), // rand_seed:Integer
159
159
block::CurrencyCollection (args.balance ).as_vm_tuple (), // balance_remaining:[Integer (Maybe Cell)]
160
- vm::load_cell_slice_ref (address), // myself:MsgAddressInt
161
- vm::StackEntry::maybe (config) // vm::StackEntry::maybe(td::Ref<vm::Cell>())
160
+ vm::load_cell_slice_ref (address), // myself:MsgAddressInt
161
+ vm::StackEntry::maybe (config) // vm::StackEntry::maybe(td::Ref<vm::Cell>())
162
162
};
163
163
if (args.config && args.config .value ()->get_global_version () >= 4 ) {
164
- tuple.push_back (code. not_null () ? code : vm::StackEntry{}); // code:Cell
164
+ tuple.push_back (vm::StackEntry::maybe (code)); // code:Cell
165
165
tuple.push_back (block::CurrencyCollection::zero ().as_vm_tuple ()); // in_msg_value:[Integer (Maybe Cell)]
166
166
tuple.push_back (td::zero_refint ()); // storage_fees:Integer
167
167
@@ -175,7 +175,10 @@ td::Ref<vm::Tuple> prepare_vm_c7(SmartContract::Args args, td::Ref<vm::Cell> cod
175
175
tuple.push_back (args.config .value ()->get_unpacked_config_tuple (now)); // unpacked_config_tuple
176
176
tuple.push_back (td::zero_refint ()); // due_payment
177
177
// precomiled_gas_usage:(Maybe Integer)
178
- auto precompiled = args.config .value ()->get_precompiled_contracts_config ().get_contract (code->get_hash ().bits ());
178
+ td::optional<block::PrecompiledContractsConfig::Contract> precompiled;
179
+ if (code.not_null ()) {
180
+ precompiled = args.config .value ()->get_precompiled_contracts_config ().get_contract (code->get_hash ().bits ());
181
+ }
179
182
tuple.push_back (precompiled ? td::make_refint (precompiled.value ().gas_usage ) : vm::StackEntry ());
180
183
}
181
184
auto tuple_ref = td::make_cnt_ref<std::vector<vm::StackEntry>>(std::move (tuple));
0 commit comments