handle TD info in RPC layer
This commit is contained in:
parent
3a7248b964
commit
1e123f1b4d
@ -24,7 +24,6 @@ use jsonrpc_macros::Trailing;
|
|||||||
use light::client::Client as LightClient;
|
use light::client::Client as LightClient;
|
||||||
use light::cht;
|
use light::cht;
|
||||||
use light::on_demand::{request, OnDemand};
|
use light::on_demand::{request, OnDemand};
|
||||||
use light::net::LightProtocol;
|
|
||||||
|
|
||||||
use ethcore::account_provider::{AccountProvider, DappId};
|
use ethcore::account_provider::{AccountProvider, DappId};
|
||||||
use ethcore::basic_account::BasicAccount;
|
use ethcore::basic_account::BasicAccount;
|
||||||
@ -94,18 +93,28 @@ impl EthClient {
|
|||||||
cht_root: root,
|
cht_root: root,
|
||||||
};
|
};
|
||||||
|
|
||||||
self.sync.with_context(|ctx| self.on_demand.header_by_number(ctx, req))
|
self.sync.with_context(|ctx|
|
||||||
|
self.on_demand.header_by_number(ctx, req)
|
||||||
|
.map(|(h, _)| h)
|
||||||
|
.map_err(errors::from_on_demand_error)
|
||||||
|
.boxed()
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
BlockId::Hash(h) => {
|
BlockId::Hash(h) => {
|
||||||
self.sync.with_context(|ctx| self.on_demand.header_by_hash(ctx, request::HeaderByHash(h)))
|
self.sync.with_context(|ctx|
|
||||||
|
self.on_demand.header_by_hash(ctx, request::HeaderByHash(h))
|
||||||
|
.map_err(errors::from_on_demand_error)
|
||||||
|
.boxed()
|
||||||
|
)
|
||||||
}
|
}
|
||||||
_ => None, // latest, earliest, and pending will have all already returned.
|
_ => None, // latest, earliest, and pending will have all already returned.
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// todo: cache returned values (header, TD)
|
||||||
match maybe_future {
|
match maybe_future {
|
||||||
Some(recv) => recv.map_err(errors::from_on_demand_error).boxed(),
|
Some(recv) => recv,
|
||||||
None => future::err(err_no_context()).boxed()
|
None => future::err(err_no_context()).boxed()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user