Skip to content

Commit

Permalink
made test pass
Browse files Browse the repository at this point in the history
  • Loading branch information
matzayonc committed Nov 22, 2023
1 parent c4222d6 commit 51ee07a
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 56 deletions.
2 changes: 1 addition & 1 deletion account_sdk/src/providers/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ pub struct PredeployedContract {
pub class_hash: FieldElement,
}

pub async fn prefounded<T>(
pub async fn prefunded<T>(
provider: &T,
) -> SingleOwnerAccount<JsonRpcClient<HttpTransport>, LocalWallet>
where
Expand Down
8 changes: 4 additions & 4 deletions account_sdk/src/tests/new_deploy_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ use starknet::{
use crate::{
deploy_contract::declare_and_deploy_contract,
providers::{
katana::KatanaProvider, katana_runner::KatanaRunner, prefounded, PredeployedClientProvider,
katana::KatanaProvider, katana_runner::KatanaRunner, prefunded, PredeployedClientProvider,
PrefoundedClientProvider, RpcClientProvider,
},
};
Expand Down Expand Up @@ -36,7 +36,7 @@ async fn test_new_deploy() {
async fn test_balance_of() {
let runner = KatanaRunner::load();
let network = KatanaProvider::from(&runner);
let account = prefounded(&network).await;
let account = prefunded(&network).await;

let call_result: Vec<starknet::core::types::FieldElement> = network
.get_client()
Expand All @@ -58,7 +58,7 @@ async fn test_balance_of() {
async fn test_balance_of_account() {
let runner = KatanaRunner::load();
let network = KatanaProvider::from(&runner);
let account = prefounded(&network).await;
let account = prefunded(&network).await;

let call_result = account
.execute(vec![Call {
Expand All @@ -78,7 +78,7 @@ async fn test_transfer() {
let runner = KatanaRunner::load();
let network = KatanaProvider::from(&runner);
let new_account = felt!("0x78662e7352d062084b0010068b99288486c2d8b914f6e2a55ce945f8792c8b1");
let account = prefounded(&network).await;
let account = prefunded(&network).await;

let call_result = account
.execute(vec![Call {
Expand Down
72 changes: 21 additions & 51 deletions account_sdk/src/tests/one_file_all.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,43 +2,34 @@ use std::sync::Arc;

use starknet::{
accounts::Account,
contract::ContractFactory,
core::types::{
contract::{CompiledClass, SierraClass},
DeclareTransactionResult, FieldElement,
DeclareTransactionResult,
},
macros::{felt, selector},
};

use crate::{
deploy_contract::{CASM_STR, SIERRA_STR},
providers::{
katana::KatanaProvider, katana_runner::KatanaRunner, prefounded, PredeployedClientProvider,
PrefoundedClientProvider,
katana::KatanaProvider, katana_runner::KatanaRunner, prefunded, PredeployedClientProvider,
},
};

use starknet::accounts::Call;

#[cfg(test)]
const DEFAULT_UDC_ADDRESS: FieldElement = FieldElement::from_mont([
15144800532519055890,
15685625669053253235,
9333317513348225193,
121672436446604875,
]);

#[tokio::test]
async fn test_contract_call_problem_2() {
async fn test_flow() {
let runner = KatanaRunner::load();
let network = KatanaProvider::from(&runner);
let prefunded = prefounded(&network).await;
let factory = prefunded(&network).await; // Same as account
let prefunded = prefunded(&network).await;

// Contract
let contract_artifact: SierraClass = serde_json::from_str(SIERRA_STR)
.map_err(|e| e.to_string())
.unwrap();

// Class hash of the compiled CASM class from the `starknet-sierra-compile` command
let compiled_class: CompiledClass = serde_json::from_str(CASM_STR)
.map_err(|e| e.to_string())
.unwrap();
Expand All @@ -47,54 +38,33 @@ async fn test_contract_call_problem_2() {
.map_err(|e| e.to_string())
.unwrap();

// We need to flatten the ABI into a string first
let flattened_class = contract_artifact
.flatten()
.map_err(|e| e.to_string())
.unwrap();

// Declare
let declaration = prefunded.declare(Arc::new(flattened_class), casm_class_hash);

let DeclareTransactionResult { class_hash, .. } = declaration.send().await.unwrap();

let target_deployment_address = class_hash;
// Deploy
let contract_factory =
ContractFactory::new_with_udc(class_hash, factory, network.predeployed_udc().address);

prefunded
.execute(vec![Call {
to: network.predeployed_udc().address,
selector: selector!("transfer"),
calldata: vec![target_deployment_address, felt!("0x10"), felt!("0x0")],
}])
.send()
.await
.unwrap();

let constructor_calldata = vec![network.prefounded_account().public_key];
let calldata = [
vec![
class_hash,
FieldElement::ZERO, // salt
FieldElement::ZERO, // unique
FieldElement::from(constructor_calldata.len()),
],
constructor_calldata,
]
.concat();

prefunded
.execute(vec![Call {
calldata,
selector: selector!("deployContract"),
to: DEFAULT_UDC_ADDRESS,
}])
.send()
.await
.unwrap();
let deployment = contract_factory.deploy(
// vec![network.prefounded_account().public_key],
vec![felt!("2137")],
felt!("2137"),
false,
);
let deployed_address = deployment.deployed_address();
deployment.send().await.expect("Unable to deploy contract");

// Use
prefunded
.execute(vec![Call {
to: target_deployment_address,
selector: selector!("getPublicKey"),
to: deployed_address,
selector: selector!("getZero"),
calldata: vec![],
}])
.send()
Expand Down

0 comments on commit 51ee07a

Please sign in to comment.