Skip to content

Commit

Permalink
cli: Remove explicit decoding depths
Browse files Browse the repository at this point in the history
  • Loading branch information
2opremio committed Sep 11, 2023
1 parent c1db31b commit aa45a6e
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 26 deletions.
14 changes: 7 additions & 7 deletions cmd/soroban-cli/src/rpc/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,11 @@ use jsonrpsee_core::params::ObjectParams;
use jsonrpsee_core::{self, client::ClientT, rpc_params};
use jsonrpsee_http_client::{HeaderMap, HttpClient, HttpClientBuilder};
use serde_aux::prelude::{deserialize_default_from_null, deserialize_number_from_string};
<<<<<<< Updated upstream
use soroban_env_host::xdr::DepthLimitedRead;
=======
use soroban_env_host::xdr::SorobanAuthorizedFunction;
>>>>>>> Stashed changes
use soroban_env_host::xdr::{
self, AccountEntry, AccountId, ContractDataEntry, DiagnosticEvent, Error as XdrError,
LedgerEntryData, LedgerFootprint, LedgerKey, LedgerKeyAccount, PublicKey, ReadXdr,
Expand Down Expand Up @@ -519,9 +523,8 @@ soroban config identity fund {address} --helper-url <url>"#
));
}
let ledger_entry = &entries[0];
let mut depth_limit_read = DepthLimitedRead::new(ledger_entry.xdr.as_bytes(), 100);
if let LedgerEntryData::Account(entry) =
LedgerEntryData::read_xdr_base64(&mut depth_limit_read)?
LedgerEntryData::from_xdr_base64(ledger_entry.xdr.as_bytes())?
{
tracing::trace!(account=?entry);
Ok(entry)
Expand Down Expand Up @@ -550,11 +553,8 @@ soroban config identity fund {address} --helper-url <url>"#
let error = error_result_xdr
.ok_or(Error::MissingError)
.and_then(|x| {
TransactionResult::read_xdr_base64(&mut DepthLimitedRead::new(
x.as_bytes(),
100,
))
.map_err(|_| Error::InvalidResponse)
TransactionResult::from_xdr_base64(x.as_bytes())
.map_err(|_| Error::InvalidResponse)
})
.map(|r| r.result);
tracing::error!(?error);
Expand Down
26 changes: 7 additions & 19 deletions cmd/soroban-cli/src/utils/contract_spec.rs
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
use base64::{engine::general_purpose::STANDARD as base64, Engine as _};
use std::{
fmt::Display,
io::{self, Cursor},
};
use std::{fmt::Display, io};

use soroban_env_host::xdr::{
self, DepthLimitedRead, ReadXdr, ScEnvMetaEntry, ScMetaEntry, ScMetaV0, ScSpecEntry,
ScSpecFunctionV0, ScSpecUdtEnumV0, ScSpecUdtErrorEnumV0, ScSpecUdtStructV0, ScSpecUdtUnionV0,
StringM, WriteXdr,
self, ReadXdr, ScEnvMetaEntry, ScMetaEntry, ScMetaV0, ScSpecEntry, ScSpecFunctionV0,
ScSpecUdtEnumV0, ScSpecUdtErrorEnumV0, ScSpecUdtStructV0, ScSpecUdtUnionV0, StringM, WriteXdr,
};
use soroban_sdk::xdr::VecM;

pub struct ContractSpec {
pub env_meta_base64: Option<String>,
Expand Down Expand Up @@ -59,32 +56,23 @@ impl ContractSpec {
let mut env_meta_base64 = None;
let env_meta = if let Some(env_meta) = env_meta {
env_meta_base64 = Some(base64.encode(env_meta));
let cursor = Cursor::new(env_meta);
let mut depth_limit_read = DepthLimitedRead::new(cursor, 100);
ScEnvMetaEntry::read_xdr_iter(&mut depth_limit_read)
.collect::<Result<Vec<_>, xdr::Error>>()?
VecM::<ScEnvMetaEntry>::from_xdr(env_meta)?.into()
} else {
vec![]
};

let mut meta_base64 = None;
let meta = if let Some(meta) = meta {
meta_base64 = Some(base64.encode(meta));
let cursor = Cursor::new(meta);
let mut depth_limit_read = DepthLimitedRead::new(cursor, 100);
ScMetaEntry::read_xdr_iter(&mut depth_limit_read)
.collect::<Result<Vec<_>, xdr::Error>>()?
VecM::<ScMetaEntry>::from_xdr(meta)?.into()
} else {
vec![]
};

let mut spec_base64 = None;
let spec = if let Some(spec) = spec {
spec_base64 = Some(base64.encode(spec));
let cursor = Cursor::new(spec);
let mut depth_limit_read = DepthLimitedRead::new(cursor, 100);
ScSpecEntry::read_xdr_iter(&mut depth_limit_read)
.collect::<Result<Vec<_>, xdr::Error>>()?
VecM::<ScSpecEntry>::from_xdr(spec)?.into()
} else {
vec![]
};
Expand Down

0 comments on commit aa45a6e

Please sign in to comment.