diff --git a/.vscode/settings.json b/.vscode/settings.json index 312e964fea..1b74e11869 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,5 +2,8 @@ "rust-analyzer.rustfmt.extraArgs": [ "+nightly" ], - "rust-analyzer.showUnlinkedFileNotification": false -} + "rust-analyzer.showUnlinkedFileNotification": false, + "cSpell.words": [ + "lumio" + ] +} \ No newline at end of file diff --git a/api/src/transactions.rs b/api/src/transactions.rs index 93f7922ff2..18fc2504a4 100644 --- a/api/src/transactions.rs +++ b/api/src/transactions.rs @@ -23,8 +23,8 @@ use crate::{ use anyhow::Context as AnyhowContext; use lumio_api_types::{ transaction::TransactionSummary, verify_function_identifier, verify_module_identifier, Address, - LumioError, LumioErrorCode, AsConverter, EncodeSubmissionRequest, GasEstimation, - GasEstimationBcs, HashValue, HexEncodedBytes, LedgerInfo, MoveType, PendingTransaction, + AsConverter, EncodeSubmissionRequest, GasEstimation, GasEstimationBcs, HashValue, + HexEncodedBytes, LedgerInfo, LumioError, LumioErrorCode, MoveType, PendingTransaction, SubmitTransactionRequest, Transaction, TransactionData, TransactionOnChainData, TransactionsBatchSingleSubmissionFailure, TransactionsBatchSubmissionResult, UserTransaction, VerifyInput, VerifyInputWithRecursion, U64, @@ -40,7 +40,7 @@ use lumio_types::{ TransactionPayload, TransactionPayloadInner, }, vm_status::StatusCode, - LumioCoinType, CoinType, + CoinType, LumioCoinType, }; use lumio_vm::{LumioSimulationVM, LumioVM}; use move_core_types::{ident_str, language_storage::ModuleId, vm_status::VMStatus}; @@ -91,16 +91,20 @@ pub enum SubmitTransactionPost { // TODO: Since I don't want to impl all the Poem derives on SignedTransaction, // find a way to at least indicate in the spec that it expects a SignedTransaction. - // TODO: https://github.com/lumio-labs/lumio-core/issues/2275 + // TODO: https://github.com/aptos-labs/aptos-core/issues/2275 #[oai(content_type = "application/x.lumio.signed_transaction+bcs")] Bcs(Bcs), + + // to support the wallet + #[oai(content_type = "application/x.aptos.signed_transaction+bcs")] + Old(Bcs), } impl VerifyInput for SubmitTransactionPost { fn verify(&self) -> anyhow::Result<()> { match self { SubmitTransactionPost::Json(inner) => inner.0.verify(), - SubmitTransactionPost::Bcs(_) => Ok(()), + SubmitTransactionPost::Bcs(_) | SubmitTransactionPost::Old(_) => Ok(()), } } } @@ -117,6 +121,10 @@ pub enum SubmitTransactionsBatchPost { // TODO: https://github.com/lumio-labs/lumio-core/issues/2275 #[oai(content_type = "application/x.lumio.signed_transaction+bcs")] Bcs(Bcs), + + // to support the wallet + #[oai(content_type = "application/x.aptos.signed_transaction+bcs")] + Old(Bcs), } impl VerifyInput for SubmitTransactionsBatchPost { @@ -127,7 +135,7 @@ impl VerifyInput for SubmitTransactionsBatchPost { request.verify()?; } }, - SubmitTransactionsBatchPost::Bcs(_) => {}, + SubmitTransactionsBatchPost::Bcs(_) | SubmitTransactionsBatchPost::Old(_) => {}, } Ok(()) } @@ -1184,7 +1192,7 @@ impl TransactionsApi { pub const MAX_SIGNED_TRANSACTION_DEPTH: usize = 16; match data { - SubmitTransactionPost::Bcs(data) => { + SubmitTransactionPost::Bcs(data) | SubmitTransactionPost::Old(data) => { let signed_transaction: SignedTransaction = bcs::from_bytes_with_limit(&data.0, MAX_SIGNED_TRANSACTION_DEPTH) .context("Failed to deserialize input into SignedTransaction") @@ -1326,7 +1334,9 @@ impl TransactionsApi { data: SubmitTransactionsBatchPost, ) -> Result, SubmitTransactionError> { match data { - SubmitTransactionsBatchPost::Bcs(data) => { + SubmitTransactionsBatchPost::Bcs(data) | + SubmitTransactionsBatchPost::Old(data) + => { let signed_transactions = bcs::from_bytes(&data.0) .context("Failed to deserialize input into SignedTransaction") .map_err(|err| { diff --git a/api/src/view_function.rs b/api/src/view_function.rs index e9c77fd7f8..f61bf14bf7 100644 --- a/api/src/view_function.rs +++ b/api/src/view_function.rs @@ -13,14 +13,14 @@ use crate::{ ApiTags, Context, }; use anyhow::Context as anyhowContext; +use itertools::Itertools; use lumio_api_types::{ - LumioErrorCode, AsConverter, MoveValue, ViewFunction, ViewRequest, MAX_RECURSIVE_TYPES_ALLOWED, + AsConverter, LumioErrorCode, MoveValue, ViewFunction, ViewRequest, MAX_RECURSIVE_TYPES_ALLOWED, U64, }; use lumio_bcs_utils::serialize_uleb128; use lumio_types::{state_store::StateView, transaction::ViewFunctionError, vm_status::StatusCode}; use lumio_vm::LumioVM; -use itertools::Itertools; use move_core_types::language_storage::TypeTag; use poem_openapi::{param::Query, payload::Json, ApiRequest, OpenApi}; use std::sync::Arc; @@ -56,6 +56,10 @@ pub enum ViewFunctionRequest { #[oai(content_type = "application/x.lumio.view_function+bcs")] Bcs(Bcs), + + // to support the wallet + #[oai(content_type = "application/x.aptos.view_function+bcs")] + Old(Bcs), } #[OpenApi] @@ -123,7 +127,7 @@ fn view_request( &ledger_info, ) })?, - ViewFunctionRequest::Bcs(data) => { + ViewFunctionRequest::Bcs(data) | ViewFunctionRequest::Old(data) => { bcs::from_bytes_with_limit(data.0.as_slice(), MAX_RECURSIVE_TYPES_ALLOWED as usize) .context("Failed to deserialize input into ViewRequest") .map_err(|err| { diff --git a/crates/lumio-crypto/src/hash.rs b/crates/lumio-crypto/src/hash.rs index 1b2cf05001..a5497801c8 100644 --- a/crates/lumio-crypto/src/hash.rs +++ b/crates/lumio-crypto/src/hash.rs @@ -118,7 +118,7 @@ use tiny_keccak::{Hasher, Sha3}; /// A prefix used to begin the salt of every hashable structure. The salt /// consists in this global prefix, concatenated with the specified /// serialization name of the struct. -pub(crate) const HASH_PREFIX: &[u8] = b"LUMIO::"; +pub(crate) const HASH_PREFIX: &[u8] = b"APTOS::"; /// Output value of our hash function. Intentionally opaque for safety and modularity. #[derive(Clone, Copy, Eq, Hash, PartialEq, PartialOrd, Ord)]