-
Notifications
You must be signed in to change notification settings - Fork 82
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor(eth-connector): Use Result return values instead of panicking #355
Conversation
I have concerns about
will return details of what was wrong with length. I suggest not to use About removing panics to error types - awesome idea! |
c1e40e6
to
b484c49
Compare
Thanks for the suggestion @mrLSD . I have added error types for the message parsing functions. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So far, really good. Lots of QOL changes which is very welcomed. Just a few requests on my behalf.
@joshuajbouw comments addresses. PTAL |
de0ccbd
to
3744d21
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@birchmd LGTM!
Minor comments, that can be added to some another PR.
impl TryFrom<JsonValue> for StorageBalanceOfCallArgs { | ||
type Error = error::ParseTypeFromJsonError; | ||
|
||
fn try_from(v: JsonValue) -> Result<Self, error::ParseTypeFromJsonError> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The correct way is: Result<Self, Self::Error>q
impl TryFrom<JsonValue> for TransferCallCallArgs { | ||
type Error = error::ParseTypeFromJsonError; | ||
|
||
fn try_from(v: JsonValue) -> Result<Self, error::ParseTypeFromJsonError> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The correct way is: Result<Self, Self::Error>q
@@ -234,6 +243,7 @@ impl<I: IO + Copy> FungibleTokenOps<I> { | |||
if let Some(memo) = memo { | |||
sdk::log(&crate::prelude::format!("Memo: {}", memo)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it correct? May be: sdk::log!
?
* Feat(engine): London hard fork support (#244) * Fix(exit precompile): Address to refund in case of error is an argument (#311) * Feat(engine): Make engine parametric in storage access (#314) * Test verifying the EVM log returns the correct address (#341) * Remove sdk::current_account_id usage from engine-precompiles (#346) * Remove Default trait bound from engine IO (#342) * Remove some sdk usage from core logic (#347) * Factor out blockchain environment variable access as a trait (#349) * Factor out NEAR promise host functions into a trait (#353) * Borsh deserialized value field for call args (#351) * Refactor(eth-connector): Use Result return values instead of panicking (#355) * Gate all NEAR host functions behind the contract feature (#356) * Bump @openzeppelin/contracts from 4.3.2 to 4.3.3 in /etc/eth-contracts * Chore: Newtypes for gas (#344) * Feat(standalone): Standalone (#345) * Minor fixes to sdk refactor (#359) * Refactor(engine): Move submit logic into engine module (#366) * Feat(standalone): Storage backend (#375) * NEAR random numbers from solidity contract (#368) * Feat(standalone): EVM tracing via SputnikVM (#383) * Feat(standalone): Bootstrap storage from relayer and state snapshots (#379) * Feat(standalone): Structures and logic for keeping storage in sync with the blockchain (#382) * Feat(standalone): Capture geth-like tracing from SputnikVM events (#384) * Connector cleanup (#374) * Remove betanet * Fix(engine): original_storage bug fix; more tracing tests (#390) * Increase NEAR Gas for ft_on_transfer (#389) Co-authored-by: Andrew Bednoff <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Evgeny Ukhanov <[email protected]> Co-authored-by: Marcelo Fornet <[email protected]> Co-authored-by: Michael Birch <[email protected]>
The purpose of this PR is to remove panic calls (
sdk_unwrap
,assert
, etc) from the connector logic. The reasons for this are: