Skip to content

Commit f7fdf9b

Browse files
committed
Test signed commit
1 parent a8f6097 commit f7fdf9b

File tree

5 files changed

+51
-99
lines changed

5 files changed

+51
-99
lines changed

core/src/engine/inspector.rs

Lines changed: 47 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
use crate::{Deadline, Nonce, events::DefuseEvent};
1+
use std::{cell::RefCell, rc::Rc};
2+
3+
use crate::{Deadline, EventSink, Nonce, accounts::{AccountEvent, NonceEvent}, events::DefuseEvent, intents::IntentEvent};
24
use impl_tools::autoimpl;
35
use near_sdk::{AccountIdRef, CryptoHash};
46

@@ -10,3 +12,47 @@ pub trait Inspector {
1012

1113
fn on_intent_executed(&mut self, signer_id: &AccountIdRef, hash: CryptoHash, nonce: Nonce);
1214
}
15+
16+
pub struct InspectorImpl {
17+
pub intents_executed: Vec<IntentEvent<AccountEvent<'static, NonceEvent>>>,
18+
event_sink: Rc<RefCell<EventSink>>,
19+
pub min_deadline: Deadline,
20+
}
21+
22+
impl InspectorImpl {
23+
pub fn new(event_sink: Rc<RefCell<EventSink>>) -> Self {
24+
Self {
25+
intents_executed: Vec::new(),
26+
min_deadline: Deadline::MAX,
27+
event_sink,
28+
}
29+
}
30+
31+
pub fn get_events(&self) -> Vec<DefuseEvent<'static>> {
32+
self.event_sink.borrow().recorded_events().into_iter().cloned().collect()
33+
}
34+
}
35+
36+
impl Inspector for InspectorImpl {
37+
#[inline]
38+
fn on_deadline(&mut self, deadline: Deadline) {
39+
self.min_deadline = self.min_deadline.min(deadline);
40+
}
41+
42+
fn on_event(&mut self, event: DefuseEvent<'_>) {
43+
self.event_sink.borrow_mut().consume_event(event.into_static());
44+
}
45+
46+
#[inline]
47+
fn on_intent_executed(
48+
&mut self,
49+
signer_id: &AccountIdRef,
50+
intent_hash: CryptoHash,
51+
nonce: Nonce,
52+
) {
53+
self.intents_executed.push(IntentEvent::new(
54+
AccountEvent::new(signer_id.to_owned(), NonceEvent::new(nonce)),
55+
intent_hash,
56+
));
57+
}
58+
}

defuse/src/contract/intents/execute.rs

Lines changed: 0 additions & 42 deletions
This file was deleted.

defuse/src/contract/intents/mod.rs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,19 @@
11
mod auth_call;
2-
mod execute;
32
mod relayer;
4-
mod simulate;
53
mod state;
64

75
use std::rc::Rc;
86

97
use defuse_core::{
108
DefuseError,
11-
engine::{Engine, ExecuteIntentsResult, StateView},
9+
engine::{Engine, ExecuteIntentsResult, InspectorImpl, StateView},
1210
events::DefuseEvent,
1311
payload::multi::MultiPayload,
1412
};
1513
use defuse_near_utils::UnwrapOrPanic;
1614
use defuse_nep245::MtEvent;
1715
use near_plugins::{Pausable, pause};
1816
use near_sdk::{FunctionError, near};
19-
use simulate::{GeneralInspector};
2017

2118
use crate::intents::{Intents, SimulationOutput, StateOutput};
2219

@@ -28,7 +25,7 @@ impl Intents for Contract {
2825
#[inline]
2926
fn execute_intents(&mut self, signed: Vec<MultiPayload>) {
3027
let sink = Rc::clone(&self.event_sink);
31-
let mut inspector = GeneralInspector::new(sink);
28+
let mut inspector = InspectorImpl::new(sink);
3229
let ExecuteIntentsResult {
3330
transfers,
3431
..
@@ -48,7 +45,7 @@ impl Intents for Contract {
4845
#[inline]
4946
fn simulate_intents(&self, signed: Vec<MultiPayload>) -> SimulationOutput {
5047
let sink = Rc::clone(&self.event_sink);
51-
let mut inspector = GeneralInspector::new(sink);
48+
let mut inspector = InspectorImpl::new(sink);
5249
let engine = Engine::new(self.cached(), &mut inspector);
5350
let result = engine.execute_signed_intents(signed);
5451

defuse/src/contract/intents/simulate.rs

Lines changed: 0 additions & 50 deletions
This file was deleted.

nep245/src/events.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use super::TokenId;
22
use derive_more::derive::From;
33
use near_sdk::{AccountIdRef, json_types::U128, near, serde::Deserialize};
44
use std::borrow::Cow;
5+
use near_sdk::env::log_str;
56

67
#[must_use = "make sure to `.emit()` this event"]
78
#[near(event_json(standard = "nep245"))]

0 commit comments

Comments
 (0)