diff --git a/Cargo.lock b/Cargo.lock index ce0a8ce83..4bce4e17a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -288,7 +288,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -305,7 +305,7 @@ checksum = "cc6dde6e4ed435a4c1ee4e73592f5ba9da2151af10076cc04858746af9352d09" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -388,6 +388,18 @@ dependencies = [ "sha3", ] +[[package]] +name = "aurora-engine-standalone-nep141-legacy" +version = "0.1.0" +dependencies = [ + "aurora-engine", + "aurora-engine-modexp", + "aurora-engine-sdk", + "aurora-engine-types", + "serde", + "serde_json", +] + [[package]] name = "aurora-engine-test-doubles" version = "1.0.0" @@ -408,6 +420,7 @@ dependencies = [ "aurora-engine-modexp", "aurora-engine-precompiles", "aurora-engine-sdk", + "aurora-engine-standalone-nep141-legacy", "aurora-engine-test-doubles", "aurora-engine-transactions", "aurora-engine-types", @@ -428,6 +441,7 @@ dependencies = [ "near-crypto 0.17.0", "near-primitives 0.17.0", "near-primitives-core 0.17.0", + "near-sdk", "near-vm-errors 0.17.0", "near-vm-logic 0.17.0", "near-vm-runner", @@ -441,6 +455,24 @@ dependencies = [ "walrus", ] +[[package]] +name = "aurora-engine-tests-connector" +version = "1.0.0" +dependencies = [ + "anyhow", + "aurora-engine", + "aurora-engine-types", + "byte-slice-cast", + "ethabi", + "hex 0.4.3", + "near-sdk", + "near-units", + "rlp", + "serde", + "tokio", + "workspaces", +] + [[package]] name = "aurora-engine-transactions" version = "1.0.0" @@ -787,7 +819,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05" dependencies = [ "memchr", - "regex-automata 0.3.3", + "regex-automata 0.3.4", "serde", ] @@ -885,11 +917,12 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" +checksum = "51f1226cd9da55587234753d1245dd5b132343ea240f26b6a9003d68706141ba" dependencies = [ "jobserver", + "libc", ] [[package]] @@ -1008,7 +1041,7 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -1322,9 +1355,9 @@ dependencies = [ [[package]] name = "curl-sys" -version = "0.4.63+curl-8.1.2" +version = "0.4.65+curl-8.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aeb0fef7046022a1e2ad67a004978f0e3cacb9e3123dc62ce768f92197b771dc" +checksum = "961ba061c9ef2fe34bbd12b807152d96f0badd2bebe7b90ce6c8c8b7572a0986" dependencies = [ "cc", "libc", @@ -1369,7 +1402,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -1380,7 +1413,16 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" dependencies = [ "darling_core", "quote", - "syn 2.0.27", + "syn 2.0.28", +] + +[[package]] +name = "deranged" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8810e7e2cf385b1e9b50d68264908ec367ba642c96d02edfe61c39e88e2a3c01" +dependencies = [ + "serde", ] [[package]] @@ -1391,7 +1433,7 @@ checksum = "53e0efad4403bfc52dc201159c4b842a246a14b98c64b55dfd0f2d89729dfeb8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -1548,6 +1590,7 @@ dependencies = [ "aurora-engine-modexp", "aurora-engine-precompiles", "aurora-engine-sdk", + "aurora-engine-standalone-nep141-legacy", "aurora-engine-transactions", "aurora-engine-types", "evm-core", @@ -1573,22 +1616,22 @@ dependencies = [ [[package]] name = "enum-map" -version = "2.6.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "017b207acb4cc917f4c31758ed95c0bc63ddb0f358b22eb38f80a2b2a43f6b1f" +checksum = "9705d8de4776df900a4a0b2384f8b0ab42f775e93b083b42f8ce71bdc32a47e3" dependencies = [ "enum-map-derive", ] [[package]] name = "enum-map-derive" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8560b409800a72d2d7860f8e5f4e0b0bd22bea6a352ea2a9ce30ccdef7f16d2f" +checksum = "ccb14d927583dd5c2eac0f2cf264fc4762aefe1ae14c47a8a20fc1939d3a5fc0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -1609,7 +1652,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -1626,9 +1669,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" +checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f" dependencies = [ "errno-dragonfly", "libc", @@ -2004,7 +2047,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -2704,9 +2747,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.10" +version = "1.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24e6ab01971eb092ffe6a7d42f49f9ff42662f17604681e2843ad65077ba47dc" +checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" dependencies = [ "cc", "libc", @@ -2728,9 +2771,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "linux-raw-sys" -version = "0.4.3" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0" +checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503" [[package]] name = "lock_api" @@ -3236,7 +3279,7 @@ dependencies = [ "smart-default", "strum", "thiserror", - "time 0.3.23", + "time 0.3.24", "tracing", ] @@ -3327,7 +3370,7 @@ checksum = "84c1eda300e2e78f4f945ae58117d49e806899f4a51ee2faa09eda5ebc2e6571" dependencies = [ "quote", "serde", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -3361,7 +3404,7 @@ dependencies = [ "fs2", "near-rpc-error-core 0.17.0", "serde", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -3783,7 +3826,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -4026,7 +4069,7 @@ checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -4535,7 +4578,7 @@ checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.3.3", + "regex-automata 0.3.4", "regex-syntax 0.7.4", ] @@ -4550,9 +4593,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310" +checksum = "b7b6d6190b7594385f61bd3911cd1be99dfddcfc365a4160cc2ab5bff4aed294" dependencies = [ "aho-corasick", "memchr", @@ -4774,7 +4817,7 @@ dependencies = [ "bitflags 2.3.3", "errno", "libc", - "linux-raw-sys 0.4.3", + "linux-raw-sys 0.4.5", "windows-sys 0.48.0", ] @@ -4938,22 +4981,22 @@ checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" [[package]] name = "serde" -version = "1.0.175" +version = "1.0.180" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d25439cd7397d044e2748a6fe2432b5e85db703d6d097bd014b3c0ad1ebff0b" +checksum = "0ea67f183f058fe88a4e3ec6e2788e003840893b91bac4559cabedd00863b3ed" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.175" +version = "1.0.180" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b23f7ade6f110613c0d63858ddb8b94c1041f550eab58a16b371bdf2c9c80ab4" +checksum = "24e744d7782b686ab3b73267ef05697159cc0e5abbed3f47f9933165e5219036" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -4969,9 +5012,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.103" +version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d03b412469450d4404fe8499a268edd7f8b79fecb074b0d812ad64ca21f4031b" +checksum = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c" dependencies = [ "itoa", "ryu", @@ -4980,13 +5023,13 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e168eaaf71e8f9bd6037feb05190485708e019f4fd87d161b3c0a0d37daf85e5" +checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -5014,7 +5057,7 @@ dependencies = [ "serde", "serde_json", "serde_with_macros", - "time 0.3.23", + "time 0.3.24", ] [[package]] @@ -5026,7 +5069,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -5261,9 +5304,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.27" +version = "2.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b60f673f44a8255b9c8c657daf66a596d435f2da81a555b06dc644d080ba45e0" +checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567" dependencies = [ "proc-macro2", "quote", @@ -5301,9 +5344,9 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.12.10" +version = "0.12.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2faeef5759ab89935255b1a4cd98e0baf99d1085e37d36599c625dac49ae8e" +checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a" [[package]] name = "tempfile" @@ -5370,7 +5413,7 @@ checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -5396,10 +5439,11 @@ dependencies = [ [[package]] name = "time" -version = "0.3.23" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59e399c068f43a5d116fedaf73b203fa4f9c519f17e2b34f63221d3792f81446" +checksum = "b79eabcd964882a646b3584543ccabeae7869e9ac32a46f6f22b7a5bd405308b" dependencies = [ + "deranged", "itoa", "serde", "time-core", @@ -5414,9 +5458,9 @@ checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" [[package]] name = "time-macros" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96ba15a897f3c86766b757e5ac7221554c6750054d74d5b28844fce5fb36a6c4" +checksum = "eb71511c991639bb078fd5bf97757e03914361c48100d52878b8e52b46fb92cd" dependencies = [ "time-core", ] @@ -5492,7 +5536,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -5700,7 +5744,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09d48f71a791638519505cefafe162606f706c25592e4bde4d97600c0195312e" dependencies = [ "crossbeam-channel", - "time 0.3.23", + "time 0.3.24", "tracing-subscriber", ] @@ -5712,7 +5756,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] @@ -5988,7 +6032,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", "wasm-bindgen-shared", ] @@ -6022,7 +6066,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -6573,9 +6617,9 @@ checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" [[package]] name = "winnow" -version = "0.5.0" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fac9742fd1ad1bd9643b991319f72dd031016d44b77039a26977eb667141e7" +checksum = "f46aab759304e4d7b2075a9aecba26228bb073ee8c50db796b2c72c676b5d807" dependencies = [ "memchr", ] @@ -6663,7 +6707,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.28", ] [[package]] diff --git a/engine-tests/src/tests/silo.rs b/engine-tests/src/tests/silo.rs index 59c06ff63..1e8482ac5 100644 --- a/engine-tests/src/tests/silo.rs +++ b/engine-tests/src/tests/silo.rs @@ -803,7 +803,8 @@ pub mod workspace { use crate::tests::erc20_connector::workspace::{erc20_balance, exit_to_near}; use crate::utils::solidity::erc20::ERC20; use crate::utils::workspace::{ - deploy_engine, deploy_erc20_from_nep_141, deploy_nep_141, nep_141_balance_of, + deploy_engine, deploy_erc20_from_nep_141, deploy_nep_141, init_eth_connector, + nep_141_balance_of, }; use aurora_engine_types::parameters::silo::{ SiloParamsArgs, WhitelistAddressArgs, WhitelistArgs, WhitelistKind, @@ -1005,7 +1006,8 @@ pub mod workspace { async fn init_silo() -> SiloTestContext { // Deploy Aurora Engine let aurora = deploy_engine().await; - + // Init external eth-connector + init_eth_connector(&aurora).await.unwrap(); // Create fallback account and evm address let fallback_account = aurora .root() diff --git a/engine-tests/src/utils/mod.rs b/engine-tests/src/utils/mod.rs index b34a9e7e1..980788fc3 100644 --- a/engine-tests/src/utils/mod.rs +++ b/engine-tests/src/utils/mod.rs @@ -4,7 +4,7 @@ use aurora_engine_types::account_id::AccountId; use aurora_engine_types::borsh::{BorshDeserialize, BorshSerialize}; use aurora_engine_types::parameters::engine::LegacyNewCallArgs; use aurora_engine_types::parameters::silo::FixedGasCostArgs; -use aurora_engine_types::types::{NEP141Wei, PromiseResult}; +use aurora_engine_types::types::PromiseResult; use evm::ExitFatal; use libsecp256k1::{self, Message, PublicKey, SecretKey}; use near_primitives::runtime::config_store::RuntimeConfigStore; diff --git a/engine-workspace/src/contract.rs b/engine-workspace/src/contract.rs index a626acf7c..53e99fd61 100644 --- a/engine-workspace/src/contract.rs +++ b/engine-workspace/src/contract.rs @@ -5,27 +5,19 @@ use crate::operation::{ CallDeployCode, CallDeployErc20Token, CallDeployUpgrade, CallDeposit, CallFactorySetWNearAddress, CallFactoryUpdate, CallFactoryUpdateAddressVersion, CallFtOnTransfer, CallFtTransfer, CallFtTransferCall, CallFundXccSubAccount, CallMintAccount, - CallNew, CallNewEthConnector, CallPausePrecompiles, CallRefundOnError, CallRegisterRelayer, - CallRemoveRelayerKey, CallResumePrecompiles, CallSetEthConnectorContractAccount, - CallSetEthConnectorContractData, CallSetKeyManager, CallSetPausedFlags, CallStageUpgrade, - CallStateMigration, CallStorageDeposit, CallStorageUnregister, CallStorageWithdraw, CallSubmit, - CallWithdraw, ViewAccountsCounter, ViewBalance, ViewBlockHash, ViewBridgeProver, ViewChainId, - ViewCode, ViewErc20FromNep141, ViewFtBalanceOf, ViewFtBalanceOfEth, ViewFtMetadata, + CallNew, CallNewEthConnector, CallPauseContract, CallPausePrecompiles, CallRefundOnError, + CallRegisterRelayer, CallRemoveEntryFromWhitelist, CallRemoveRelayerKey, CallResumeContract, + CallResumePrecompiles, CallSetEthConnectorContractAccount, CallSetEthConnectorContractData, + CallSetFixedGasCost, CallSetKeyManager, CallSetPausedFlags, CallSetSiloParams, + CallSetWhitelistStatus, CallStageUpgrade, CallStateMigration, CallStorageDeposit, + CallStorageUnregister, CallStorageWithdraw, CallSubmit, CallWithdraw, ViewAccountsCounter, + ViewBalance, ViewBlockHash, ViewBridgeProver, ViewChainId, ViewCode, ViewErc20FromNep141, + ViewFactoryWnearAddress, ViewFtBalanceOf, ViewFtBalanceOfEth, ViewFtMetadata, ViewFtTotalEthSupplyOnAurora, ViewFtTotalEthSupplyOnNear, ViewFtTotalSupply, - ViewGetEthConnectorContractAccount, ViewIsUsedProof, ViewNep141FromErc20, ViewNonce, ViewOwner, + ViewGetEthConnectorContractAccount, ViewGetFixedGasCost, ViewGetSiloParams, + ViewGetWhitelistStatus, ViewIsUsedProof, ViewNep141FromErc20, ViewNonce, ViewOwner, ViewPausedFlags, ViewPausedPrecompiles, ViewStorageAt, ViewStorageBalanceOf, ViewUpgradeIndex, ViewVersion, ViewView, - CallNew, CallNewEthConnector, CallPauseContract, CallPausePrecompiles, CallRefundOnError, - CallRegisterRelayer, CallRemoveEntryFromWhitelist, CallRemoveRelayerKey, CallResumeContract, - CallResumePrecompiles, CallSetEthConnectorContractData, CallSetFixedGasCost, CallSetKeyManager, - CallSetPausedFlags, CallSetSiloParams, CallSetWhitelistStatus, CallStageUpgrade, - CallStateMigration, CallStorageDeposit, CallStorageUnregister, CallStorageWithdraw, CallSubmit, - CallWithdraw, ViewAccountsCounter, ViewBalance, ViewBlockHash, ViewBridgeProver, ViewChainId, - ViewCode, ViewErc20FromNep141, ViewFactoryWnearAddress, ViewFtBalanceOf, ViewFtBalanceOfEth, - ViewFtMetadata, ViewFtTotalEthSupplyOnAurora, ViewFtTotalEthSupplyOnNear, ViewFtTotalSupply, - ViewGetFixedGasCost, ViewGetSiloParams, ViewGetWhitelistStatus, ViewIsUsedProof, - ViewNep141FromErc20, ViewNonce, ViewOwner, ViewPausedFlags, ViewPausedPrecompiles, - ViewStorageAt, ViewStorageBalanceOf, ViewUpgradeIndex, ViewVersion, ViewView, }; use crate::transaction::{CallTransaction, ViewTransaction}; use aurora_engine_types::account_id::AccountId; diff --git a/engine-workspace/src/operation.rs b/engine-workspace/src/operation.rs index 3b1cc53e2..9fc206393 100644 --- a/engine-workspace/src/operation.rs +++ b/engine-workspace/src/operation.rs @@ -94,8 +94,7 @@ impl_view_return![ (ViewNep141FromErc20 => AccountId, View::Nep141FromErc20, borsh), (ViewPausedFlags => u8, View::PausedFlags, borsh), (ViewAccountsCounter => u64, View::AccountsCounter, borsh), - (ViewGetEthConnectorContractAccount => AccountId, View::GetEthConnectorContractAccount, borsh) - (ViewAccountsCounter => u64, View::AccountsCounter, borsh), + (ViewGetEthConnectorContractAccount => AccountId, View::GetEthConnectorContractAccount, borsh), (ViewGetFixedGasCost => FixedGasCostArgs, View::GetFixedGasCost, borsh), (ViewGetSiloParams => SiloParamsArgs, View::GetSiloParams, borsh), (ViewGetWhitelistStatus => WhitelistStatusArgs, View::GetWhitelistStatus, borsh), diff --git a/engine/src/connector.rs b/engine/src/connector.rs index 9b7cbcd4a..d2a67cc04 100644 --- a/engine/src/connector.rs +++ b/engine/src/connector.rs @@ -7,7 +7,6 @@ use crate::prelude::{address::error::AddressError, Wei}; use crate::deposit_event::FtTransferMessageData; use crate::engine::Engine; -use crate::parameters::errors::ParseTypeFromJsonError; use crate::prelude::{ sdk, str, AccountId, Address, EthConnectorStorageId, KeyPrefix, NearGas, String, ToString, Vec, Yocto, @@ -17,6 +16,7 @@ use aurora_engine_sdk::env::{Env, DEFAULT_PREPAID_GAS}; use aurora_engine_sdk::io::{StorageIntermediate, IO}; use aurora_engine_types::borsh::{self, BorshDeserialize, BorshSerialize}; use aurora_engine_types::parameters::connector::Proof; +use aurora_engine_types::parameters::engine::errors::ParseArgsError; use aurora_engine_types::types::ZERO_WEI; use error::DepositError; @@ -120,7 +120,7 @@ impl EthConnectorContract { pub fn ft_balance_of_eth_on_aurora( &mut self, args: &BalanceOfEthCallArgs, - ) -> Result<(), ParseTypeFromJsonError> { + ) -> Result<(), ParseArgsError> { let balance = self.internal_unwrap_balance_of_eth_on_aurora(&args.address); sdk::log!("Balance of ETH [{}]: {}", args.address.encode(), balance); self.io.return_output(&serde_json::to_vec(&balance)?); diff --git a/engine/src/lib.rs b/engine/src/lib.rs index 7cc28b22c..7195a3baf 100644 --- a/engine/src/lib.rs +++ b/engine/src/lib.rs @@ -113,7 +113,6 @@ mod contract { EngineWithdrawCallArgs, SetEthConnectorContractAccountArgs, StorageUnregisterCallArgs, }; use aurora_engine_types::parameters::engine::errors::ParseArgsError; - use aurora_engine_types::parameters::engine::StorageUnregisterArgs; use aurora_engine_types::parameters::engine::{RelayerKeyArgs, RelayerKeyManagerArgs}; use aurora_engine_types::parameters::silo::{ FixedGasCostArgs, SiloParamsArgs, WhitelistArgs, WhitelistKindArgs, WhitelistStatusArgs, @@ -587,10 +586,9 @@ mod contract { require_owner_only(&state, &io.predecessor_account_id()); - let key_manager = - serde_json::from_slice::(&io.read_input().to_vec()) - .map(|args| args.key_manager) - .sdk_expect(errors::ERR_JSON_DESERIALIZE); + let key_manager = read_json_args(&io) + .map(|args: RelayerKeyManagerArgs| args.key_manager) + .sdk_expect(errors::ERR_JSON_DESERIALIZE); if state.key_manager == key_manager { sdk::panic_utf8(errors::ERR_SAME_KEY_MANAGER) @@ -607,8 +605,8 @@ mod contract { let state = state::get_state(&io).sdk_unwrap(); require_key_manager_only(&state, &io.predecessor_account_id()); - let public_key = serde_json::from_slice::(&io.read_input().to_vec()) - .map(|args| args.public_key) + let public_key = read_json_args(&io) + .map(|args: RelayerKeyArgs| args.public_key) .sdk_expect(errors::ERR_JSON_DESERIALIZE); let allowance = Yocto::new(io.attached_deposit()); sdk::log!("attached key allowance: {allowance}"); @@ -643,8 +641,7 @@ mod contract { let state = state::get_state(&io).sdk_unwrap(); require_key_manager_only(&state, &io.predecessor_account_id()); - let args: RelayerKeyArgs = serde_json::from_slice(&io.read_input().to_vec()) - .sdk_expect(errors::ERR_JSON_DESERIALIZE); + let args: RelayerKeyArgs = read_json_args(&io).sdk_expect(errors::ERR_JSON_DESERIALIZE); engine::remove_function_call_key(&mut io, &args.public_key).sdk_unwrap(); @@ -886,8 +883,8 @@ mod contract { args.amount, args.memo, )) + .map_err(Into::::into) }) - .map_err(Into::::into) .sdk_unwrap(); let promise_arg = EthConnectorContract::init_instance(io) @@ -912,8 +909,8 @@ mod contract { args.memo, args.msg, )) + .map_err(Into::::into) }) - .map_err(Into::::into) .sdk_unwrap(); let promise_args = EthConnectorContract::init_instance(io) @@ -941,8 +938,8 @@ mod contract { ) .sdk_unwrap(); - let args: NEP141FtOnTransferArgs = serde_json::from_slice(&io.read_input().to_vec()) - .map_err(Into::::into) + let args: NEP141FtOnTransferArgs = read_json_args(&io) + .map_err(Into::::into) .sdk_unwrap(); let mut eth_connector = EthConnectorContract::init_instance(io).sdk_unwrap(); @@ -969,8 +966,8 @@ mod contract { args.account_id, args.registration_only, )) + .map_err(Into::::into) }) - .map_err(Into::::into) .sdk_unwrap(); let promise_args = EthConnectorContract::init_instance(io) @@ -990,8 +987,8 @@ mod contract { let input = read_json_args(&io) .and_then(|args: StorageUnregisterCallArgs| { serde_json::to_vec(&(io.predecessor_account_id(), args.force)) + .map_err(Into::::into) }) - .map_err(Into::::into) .sdk_unwrap(); let promise_args = EthConnectorContract::init_instance(io) @@ -1009,8 +1006,10 @@ mod contract { io.assert_one_yocto().sdk_unwrap(); let input = read_json_args(&io) - .and_then(|args: StorageWithdrawCallArgs| serde_json::to_vec(&(io.predecessor_account_id(), args.amount))) - .map_err(Into::::into) + .and_then(|args: StorageWithdrawCallArgs| { + serde_json::to_vec(&(io.predecessor_account_id(), args.amount)) + .map_err(Into::::into) + }) .sdk_unwrap(); let promise_args = EthConnectorContract::init_instance(io) @@ -1293,12 +1292,6 @@ mod contract { let bytes = io.read_input().to_vec(); aurora_engine_types::parameters::engine::parse_json_args(&bytes) } - - mod exports { - extern "C" { - pub(crate) fn value_return(value_len: u64, value_ptr: u64); - } - } } pub trait AuroraState {