Skip to content

Commit 227260f

Browse files
authored
Make Backend::set_code able to fail (#231)
1 parent d58d203 commit 227260f

File tree

4 files changed

+6
-4
lines changed

4 files changed

+6
-4
lines changed

interpreter/src/runtime.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ pub trait RuntimeBackend: RuntimeBaseBackend {
143143
/// Fully delete storages of an account.
144144
fn reset_storage(&mut self, address: H160);
145145
/// Set code of an account.
146-
fn set_code(&mut self, address: H160, code: Vec<u8>);
146+
fn set_code(&mut self, address: H160, code: Vec<u8>) -> Result<(), ExitError>;
147147
/// Reset balance of an account.
148148
fn reset_balance(&mut self, address: H160);
149149
fn deposit(&mut self, target: H160, value: U256);

interpreter/tests/usability.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ impl<'a> RuntimeBackend for UnimplementedHandler {
143143
unimplemented!()
144144
}
145145

146-
fn set_code(&mut self, _address: H160, _code: Vec<u8>) {
146+
fn set_code(&mut self, _address: H160, _code: Vec<u8>) -> Result<(), ExitError> {
147147
unimplemented!()
148148
}
149149

src/backend/in_memory.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,12 +214,14 @@ impl RuntimeBackend for InMemoryBackend {
214214
.storage = Default::default();
215215
}
216216

217-
fn set_code(&mut self, address: H160, code: Vec<u8>) {
217+
fn set_code(&mut self, address: H160, code: Vec<u8>) -> Result<(), ExitError> {
218218
self.current_layer_mut()
219219
.state
220220
.entry(address)
221221
.or_default()
222222
.code = code;
223+
224+
Ok(())
223225
}
224226

225227
fn reset_balance(&mut self, address: H160) {

src/standard/invoker/routines.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ where
238238

239239
StaticGasometer::record_codedeposit(gasometer, retbuf.len())?;
240240

241-
handler.set_code(address, retbuf.clone());
241+
handler.set_code(address, retbuf.clone())?;
242242

243243
Ok(())
244244
}

0 commit comments

Comments
 (0)