From cbc3bfef6e57b9eb1ffd345edc10c66a2435b90e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marin=20Ver=C5=A1i=C4=87?= Date: Mon, 1 May 2023 16:16:44 +0300 Subject: [PATCH] [fix] #3440: Stop supporting asset conversion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marin Veršić --- client/benches/tps/utils.rs | 12 +- client/tests/integration/asset.rs | 90 +++++----- .../integration/multisignature_transaction.rs | 24 +-- client/tests/integration/permissions.rs | 4 +- client/tests/integration/transfer_asset.rs | 2 +- client/tests/integration/upgrade.rs | 5 +- client_cli/src/main.rs | 9 +- configs/peer/validator.wasm | Bin 765273 -> 765140 bytes core/benches/kura.rs | 13 +- core/src/queue.rs | 68 +++----- core/src/smartcontracts/isi/asset.rs | 46 ++--- core/src/smartcontracts/isi/mod.rs | 10 +- core/src/tx.rs | 3 +- data_model/src/account.rs | 22 +-- data_model/src/evaluate.rs | 163 ++++++++---------- data_model/src/expression.rs | 12 +- data_model/tests/data_model.rs | 84 ++------- default_validator/src/isi/asset.rs | 2 +- default_validator/src/isi/mod.rs | 4 +- 19 files changed, 219 insertions(+), 354 deletions(-) diff --git a/client/benches/tps/utils.rs b/client/benches/tps/utils.rs index 59aeaff31ca..98994235951 100644 --- a/client/benches/tps/utils.rs +++ b/client/benches/tps/utils.rs @@ -263,9 +263,9 @@ impl MeasurerUnit { fn mint_or_burn(&self) -> InstructionBox { let is_running_out = Less::new( - EvaluatesTo::new_unchecked( - Expression::Query(FindAssetQuantityById::new(asset_id(self.name)).into()).into(), - ), + EvaluatesTo::new_unchecked(Expression::Query( + FindAssetQuantityById::new(asset_id(self.name)).into(), + )), 100_u32, ); let supply_roses = MintBox::new(100_u32.to_value(), asset_id(self.name)); @@ -279,9 +279,9 @@ impl MeasurerUnit { // because if asset value hits 0 it's automatically deleted from account // and query `FindAssetQuantityById` return error let enough_to_transfer = Greater::new( - EvaluatesTo::new_unchecked( - Expression::Query(FindAssetQuantityById::new(asset_id(self.name)).into()).into(), - ), + EvaluatesTo::new_unchecked(Expression::Query( + FindAssetQuantityById::new(asset_id(self.name)).into(), + )), 1_u32, ); let transfer_rose = TransferBox::new( diff --git a/client/tests/integration/asset.rs b/client/tests/integration/asset.rs index 6c8c8f858d1..37afaf28fff 100644 --- a/client/tests/integration/asset.rs +++ b/client/tests/integration/asset.rs @@ -278,6 +278,13 @@ fn find_rate_and_make_exchange_isi_should_succeed() { )); }; + let buyer_account_id = account_id_new("buyer", "company"); + let seller_account_id = account_id_new("seller", "company"); + let asset_id = asset_id_new( + "btc2eth_rate", + "exchange", + account_id_new("dex", "exchange"), + ); test_client .submit_all_blocking(vec![ register::domain("exchange").into(), @@ -291,19 +298,15 @@ fn find_rate_and_make_exchange_isi_should_succeed() { register::asset_definition("btc2eth_rate", "exchange").into(), MintBox::new( 200_u32.to_value(), - IdBox::AssetId(asset_id_new("eth", "crypto", "buyer", "company")), - ) - .into(), - MintBox::new( - 20_u32.to_value(), - IdBox::AssetId(asset_id_new("btc", "crypto", "seller", "company")), + IdBox::AssetId(asset_id_new("eth", "crypto", buyer_account_id.clone())), ) .into(), MintBox::new( 20_u32.to_value(), - IdBox::AssetId(asset_id_new("btc2eth_rate", "exchange", "dex", "exchange")), + IdBox::AssetId(asset_id_new("btc", "crypto", seller_account_id.clone())), ) .into(), + MintBox::new(20_u32.to_value(), IdBox::AssetId(asset_id.clone())).into(), ]) .expect("Failed to prepare accounts."); @@ -313,36 +316,18 @@ fn find_rate_and_make_exchange_isi_should_succeed() { test_client .submit_all_blocking(vec![Pair::new( TransferBox::new( - IdBox::AssetId(asset_id_new("btc", "crypto", "seller", "company")), - EvaluatesTo::new_evaluates_to_value( - Expression::Query( - FindAssetQuantityById::new(asset_id_new( - "btc2eth_rate", - "exchange", - "dex", - "exchange", - )) - .into(), - ) - .into(), - ), - IdBox::AssetId(asset_id_new("btc", "crypto", "buyer", "company")), + IdBox::AssetId(asset_id_new("btc", "crypto", seller_account_id.clone())), + EvaluatesTo::new_evaluates_to_value(Expression::Query( + FindAssetQuantityById::new(asset_id.clone()).into(), + )), + IdBox::AccountId(buyer_account_id.clone()), ), TransferBox::new( - IdBox::AssetId(asset_id_new("eth", "crypto", "buyer", "company")), - EvaluatesTo::new_evaluates_to_value( - Expression::Query( - FindAssetQuantityById::new(asset_id_new( - "btc2eth_rate", - "exchange", - "dex", - "exchange", - )) - .into(), - ) - .into(), - ), - IdBox::AssetId(asset_id_new("eth", "crypto", "seller", "company")), + IdBox::AssetId(asset_id_new("eth", "crypto", buyer_account_id)), + EvaluatesTo::new_evaluates_to_value(Expression::Query( + FindAssetQuantityById::new(asset_id).into(), + )), + IdBox::AccountId(seller_account_id), ), ) .into()]) @@ -354,7 +339,9 @@ fn find_rate_and_make_exchange_isi_should_succeed() { let eth_quantity = test_client .request(FindAssetQuantityById::new(asset_id_new( - "eth", "crypto", "seller", "company", + "eth", + "crypto", + account_id_new("seller", "company"), ))) .expect("Failed to execute Iroha Query"); assert_eq!(expected_seller_eth, eth_quantity); @@ -362,40 +349,45 @@ fn find_rate_and_make_exchange_isi_should_succeed() { // For the btc amount we expect an error, as zero assets are purged from accounts test_client .request(FindAssetQuantityById::new(asset_id_new( - "btc", "crypto", "seller", "company", + "btc", + "crypto", + account_id_new("seller", "company"), ))) .expect_err("Query must fail"); let buyer_eth_quantity = test_client .request(FindAssetQuantityById::new(asset_id_new( - "eth", "crypto", "buyer", "company", + "eth", + "crypto", + account_id_new("buyer", "company"), ))) .expect("Failed to execute Iroha Query"); assert_eq!(expected_buyer_eth, buyer_eth_quantity); let buyer_btc_quantity = test_client .request(FindAssetQuantityById::new(asset_id_new( - "btc", "crypto", "buyer", "company", + "btc", + "crypto", + account_id_new("buyer", "company"), ))) .expect("Failed to execute Iroha Query"); assert_eq!(expected_buyer_btc, buyer_btc_quantity); } -fn asset_id_new( - definition_name: &str, - definition_domain: &str, - account_name: &str, - account_domain: &str, -) -> AssetId { +fn account_id_new(account_name: &str, account_domain: &str) -> AccountId { + AccountId::new( + account_name.parse().expect("Valid"), + account_domain.parse().expect("Valid"), + ) +} + +fn asset_id_new(definition_name: &str, definition_domain: &str, account_id: AccountId) -> AssetId { AssetId::new( AssetDefinitionId::new( definition_name.parse().expect("Valid"), definition_domain.parse().expect("Valid"), ), - AccountId::new( - account_name.parse().expect("Valid"), - account_domain.parse().expect("Valid"), - ), + account_id, ) } diff --git a/client/tests/integration/multisignature_transaction.rs b/client/tests/integration/multisignature_transaction.rs index 317a3bd2e82..f9c5eb45491 100644 --- a/client/tests/integration/multisignature_transaction.rs +++ b/client/tests/integration/multisignature_transaction.rs @@ -24,21 +24,15 @@ fn multisignature_transactions_should_wait_for_all_signatures() { let asset_definition_id = AssetDefinitionId::from_str("camomile#wonderland").expect("Valid"); let create_asset = RegisterBox::new(AssetDefinition::quantity(asset_definition_id.clone())); let set_signature_condition = MintBox::new( - SignatureCheckCondition::new(EvaluatesTo::new_unchecked( - ContainsAll::new( - EvaluatesTo::new_unchecked( - ContextValue::new( - Name::from_str(TRANSACTION_SIGNATORIES_VALUE).expect("Can't fail."), - ) - .into(), - ), - val_vec![ - alice_key_pair.public_key().clone(), - key_pair_2.public_key().clone(), - ], - ) - .into(), - )), + SignatureCheckCondition::new(EvaluatesTo::new_unchecked(ContainsAll::new( + EvaluatesTo::new_unchecked(ContextValue::new( + Name::from_str(TRANSACTION_SIGNATORIES_VALUE).expect("Can't fail."), + )), + val_vec![ + alice_key_pair.public_key().clone(), + key_pair_2.public_key().clone(), + ], + ))), IdBox::AccountId(alice_id.clone()), ); diff --git a/client/tests/integration/permissions.rs b/client/tests/integration/permissions.rs index b9c504c71c0..ef7481c0140 100644 --- a/client/tests/integration/permissions.rs +++ b/client/tests/integration/permissions.rs @@ -80,9 +80,9 @@ fn permissions_disallow_asset_transfer() { //When let transfer_asset = TransferBox::new( - IdBox::AssetId(AssetId::new(asset_definition_id.clone(), bob_id)), + IdBox::AssetId(AssetId::new(asset_definition_id, bob_id)), quantity.to_value(), - IdBox::AssetId(AssetId::new(asset_definition_id, alice_id.clone())), + IdBox::AccountId(alice_id.clone()), ); let err = iroha_client .submit_blocking(transfer_asset) diff --git a/client/tests/integration/transfer_asset.rs b/client/tests/integration/transfer_asset.rs index c1a49945469..7ff62f0b070 100644 --- a/client/tests/integration/transfer_asset.rs +++ b/client/tests/integration/transfer_asset.rs @@ -82,7 +82,7 @@ fn simulate_transfer< let transfer_asset = TransferBox::new( IdBox::AssetId(AssetId::new(asset_definition_id.clone(), alice_id)), amount_to_transfer.clone().to_value(), - IdBox::AssetId(AssetId::new(asset_definition_id.clone(), mouse_id.clone())), + IdBox::AccountId(mouse_id.clone()), ); iroha_client .submit_till( diff --git a/client/tests/integration/upgrade.rs b/client/tests/integration/upgrade.rs index ec124b77a0b..7a44ff4c5ce 100644 --- a/client/tests/integration/upgrade.rs +++ b/client/tests/integration/upgrade.rs @@ -12,7 +12,6 @@ fn validator_upgrade_should_work() -> Result<()> { wait_for_genesis_committed(&vec![client.clone()], 0); // Register `admin` domain and account - let admin_domain = Domain::new("admin".parse()?); let register_admin_domain = RegisterBox::new(admin_domain); client.submit_blocking(register_admin_domain)?; @@ -25,7 +24,7 @@ fn validator_upgrade_should_work() -> Result<()> { // Check that admin isn't allowed to transfer alice's rose by default let alice_rose: ::Id = "rose##alice@wonderland".parse()?; - let admin_rose: ::Id = "rose#wonderland#admin@admin".parse()?; + let admin_rose: ::Id = "admin@admin".parse()?; let transfer_alice_rose = TransferBox::new(alice_rose, NumericValue::U32(1), admin_rose); let transfer_rose_tx = TransactionBuilder::new( admin_id.clone(), @@ -38,7 +37,6 @@ fn validator_upgrade_should_work() -> Result<()> { .expect_err("Should fail"); // Upgrade Validator - info!("Building validator"); let temp_out_dir = tempfile::tempdir().wrap_err("Failed to create temporary output directory")?; @@ -60,7 +58,6 @@ fn validator_upgrade_should_work() -> Result<()> { client.submit_blocking(upgrade_validator)?; // Check that admin can transfer alice's rose now - // Creating new transaction instead of cloning, because we need to update it's creation time let transfer_rose_tx = TransactionBuilder::new(admin_id, vec![transfer_alice_rose.into()], 100_000) diff --git a/client_cli/src/main.rs b/client_cli/src/main.rs index db315ebea33..586fca0c0d1 100644 --- a/client_cli/src/main.rs +++ b/client_cli/src/main.rs @@ -462,9 +462,8 @@ mod account { condition: Signature(condition), metadata: Metadata(metadata), } = self; - let mint_box = - MintBox::new(account, EvaluatesTo::new_unchecked(condition.into())).into(); - submit([mint_box], cfg, metadata).wrap_err("Failed to set signature condition") + let mint_box = MintBox::new(account, EvaluatesTo::new_unchecked(condition)); + submit([mint_box.into()], cfg, metadata).wrap_err("Failed to set signature condition") } } @@ -685,9 +684,9 @@ mod asset { metadata: Metadata(metadata), } = self; let transfer_asset = TransferBox::new( - IdBox::AssetId(AssetId::new(asset_id.clone(), from)), + IdBox::AssetId(AssetId::new(asset_id, from)), quantity.to_value(), - IdBox::AssetId(AssetId::new(asset_id, to)), + IdBox::AccountId(to), ) .into(); submit([transfer_asset], cfg, metadata).wrap_err("Failed to transfer asset") diff --git a/configs/peer/validator.wasm b/configs/peer/validator.wasm index d806ab45480c1e9dd5fa998c67eeb489044dd3ca..f6ff2b137f821f666e663a6f2bced223f540a967 100644 GIT binary patch delta 94825 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 R4gyoOaR+rba9zH^{{c{L*XaNN delta 93930 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 QAh}r$ZA^FGl5hV10I@O)::Id::new(xor_id.clone(), alice_id); - let bob_xor_id = ::Id::new(xor_id, bob_id); - let transfer = TransferBox { - source_id: IdBox::AssetId(alice_xor_id).into(), - object: 10_u32.to_value().into(), - destination_id: IdBox::AssetId(bob_xor_id).into(), - } + let alice_xor_id = ::Id::new(xor_id, alice_id); + let transfer = TransferBox::new( + IdBox::AssetId(alice_xor_id), + 10_u32.to_value(), + IdBox::AccountId(bob_id), + ) .into(); let keypair = KeyPair::generate().expect("Failed to generate KeyPair."); let tx = TransactionBuilder::new( diff --git a/core/src/queue.rs b/core/src/queue.rs index 9fb045fb3a0..1ac8cb7028a 100644 --- a/core/src/queue.rs +++ b/core/src/queue.rs @@ -498,20 +498,14 @@ mod tests { .build(alice_id); alice.signature_check_condition = SignatureCheckCondition( ContainsAll::new( - EvaluatesTo::new_unchecked( - ContextValue::new( - Name::from_str(TRANSACTION_SIGNATORIES_VALUE) - .expect("TRANSACTION_SIGNATORIES_VALUE should be valid."), - ) - .into(), - ), - EvaluatesTo::new_unchecked( - ContextValue::new( - Name::from_str(ACCOUNT_SIGNATORIES_VALUE) - .expect("ACCOUNT_SIGNATORIES_VALUE should be valid."), - ) - .into(), - ), + EvaluatesTo::new_unchecked(ContextValue::new( + Name::from_str(TRANSACTION_SIGNATORIES_VALUE) + .expect("TRANSACTION_SIGNATORIES_VALUE should be valid."), + )), + EvaluatesTo::new_unchecked(ContextValue::new( + Name::from_str(ACCOUNT_SIGNATORIES_VALUE) + .expect("ACCOUNT_SIGNATORIES_VALUE should be valid."), + )), ) .into(), ); @@ -584,20 +578,14 @@ mod tests { .build(alice_id); alice.signature_check_condition = SignatureCheckCondition( ContainsAll::new( - EvaluatesTo::new_unchecked( - ContextValue::new( - Name::from_str(TRANSACTION_SIGNATORIES_VALUE) - .expect("TRANSACTION_SIGNATORIES_VALUE should be valid."), - ) - .into(), - ), - EvaluatesTo::new_unchecked( - ContextValue::new( - Name::from_str(ACCOUNT_SIGNATORIES_VALUE) - .expect("ACCOUNT_SIGNATORIES_VALUE should be valid."), - ) - .into(), - ), + EvaluatesTo::new_unchecked(ContextValue::new( + Name::from_str(TRANSACTION_SIGNATORIES_VALUE) + .expect("TRANSACTION_SIGNATORIES_VALUE should be valid."), + )), + EvaluatesTo::new_unchecked(ContextValue::new( + Name::from_str(ACCOUNT_SIGNATORIES_VALUE) + .expect("ACCOUNT_SIGNATORIES_VALUE should be valid."), + )), ) .into(), ); @@ -664,7 +652,7 @@ mod tests { Account::new(account_id.clone(), [key_pair.public_key().clone()]).build(account_id); // Cause `check_siganture_condition` failure by trying to convert `u32` to `bool` account.signature_check_condition = - SignatureCheckCondition(EvaluatesTo::new_unchecked(0u32.into())); + SignatureCheckCondition(EvaluatesTo::new_unchecked(0u32)); assert!(domain.add_account(account).is_none()); let kura = Kura::blank_kura_for_testing(); @@ -707,20 +695,14 @@ mod tests { .build(account_id); account.signature_check_condition = SignatureCheckCondition( ContainsAll::new( - EvaluatesTo::new_unchecked( - ContextValue::new( - Name::from_str(TRANSACTION_SIGNATORIES_VALUE) - .expect("TRANSACTION_SIGNATORIES_VALUE should be valid."), - ) - .into(), - ), - EvaluatesTo::new_unchecked( - ContextValue::new( - Name::from_str(ACCOUNT_SIGNATORIES_VALUE) - .expect("ACCOUNT_SIGNATORIES_VALUE should be valid."), - ) - .into(), - ), + EvaluatesTo::new_unchecked(ContextValue::new( + Name::from_str(TRANSACTION_SIGNATORIES_VALUE) + .expect("TRANSACTION_SIGNATORIES_VALUE should be valid."), + )), + EvaluatesTo::new_unchecked(ContextValue::new( + Name::from_str(ACCOUNT_SIGNATORIES_VALUE) + .expect("ACCOUNT_SIGNATORIES_VALUE should be valid."), + )), ) .into(), ); diff --git a/core/src/smartcontracts/isi/asset.rs b/core/src/smartcontracts/isi/asset.rs index 0d752c76355..14fe281258f 100644 --- a/core/src/smartcontracts/isi/asset.rs +++ b/core/src/smartcontracts/isi/asset.rs @@ -168,7 +168,7 @@ pub mod isi { ($ty:ty, $metrics:literal) => { impl InnerTransfer for $ty {} - impl Execute for Transfer { + impl Execute for Transfer { type Error = Error; #[metrics(+$metrics)] @@ -304,7 +304,7 @@ pub mod isi { /// Trait for blanket transfer implementation. trait InnerTransfer { fn execute( - transfer: Transfer, + transfer: Transfer, _authority: ::Id, wsv: &WorldStateView, ) -> Result<(), Err> @@ -315,18 +315,17 @@ pub mod isi { Value: From, Err: From, { - assert_matching_definitions( - &transfer.source_id, - &transfer.destination_id, - wsv, - ::EXPECTED_VALUE_TYPE, - )?; + let source_id = &transfer.source_id; + let destination_id = AssetId::new( + source_id.definition_id.clone(), + transfer.destination_id.clone(), + ); wsv.asset_or_insert( - &transfer.destination_id, + &destination_id, ::DEFAULT_ASSET_VALUE, )?; - wsv.modify_asset(&transfer.source_id, |asset| { + wsv.modify_asset(source_id, |asset| { let quantity: &mut Self = asset .try_as_mut() .map_err(eyre::Error::from) @@ -336,11 +335,12 @@ pub mod isi { .ok_or(MathError::NotEnoughQuantity)?; Ok(AssetEvent::Removed(AssetChanged { - asset_id: transfer.source_id.clone(), + asset_id: source_id.clone(), amount: transfer.object.into(), })) })?; - wsv.modify_asset(&transfer.destination_id, |asset| { + let destination_id_clone = destination_id.clone(); + wsv.modify_asset(&destination_id, |asset| { let quantity: &mut Self = asset .try_as_mut() .map_err(eyre::Error::from) @@ -355,7 +355,7 @@ pub mod isi { .set(wsv.metric_tx_amounts_counter.get() + 1); Ok(AssetEvent::Added(AssetChanged { - asset_id: transfer.destination_id.clone(), + asset_id: destination_id_clone, amount: transfer.object.into(), })) })?; @@ -420,26 +420,6 @@ pub mod isi { }), } } - - /// Assert that the two assets have the same asset `definition_id`. - fn assert_matching_definitions( - source: &::Id, - destination: &::Id, - wsv: &WorldStateView, - value_type: AssetValueType, - ) -> Result<(), Error> { - if destination.definition_id != source.definition_id { - let expected = wsv - .asset_definition(&destination.definition_id)? - .id() - .clone(); - let actual = wsv.asset_definition(&source.definition_id)?.id().clone(); - return Err(TypeError::from(Mismatch { expected, actual }).into()); - } - assert_asset_type(&source.definition_id, wsv, value_type)?; - assert_asset_type(&destination.definition_id, wsv, value_type)?; - Ok(()) - } } /// Asset-related query implementations. diff --git a/core/src/smartcontracts/isi/mod.rs b/core/src/smartcontracts/isi/mod.rs index c9b2e343c15..c6d2ea44a16 100644 --- a/core/src/smartcontracts/isi/mod.rs +++ b/core/src/smartcontracts/isi/mod.rs @@ -226,7 +226,7 @@ impl Execute for TransferBox { wsv: &WorldStateView, ) -> Result<(), Self::Error> { let context = Context::new(wsv); - let (IdBox::AssetId(source_asset_id), IdBox::AssetId(destination_asset_id)) = ( + let (IdBox::AssetId(source_asset_id), IdBox::AccountId(destination_account_id)) = ( self.source_id.evaluate(&context)?, self.destination_id.evaluate(&context)?, ) else { @@ -235,20 +235,20 @@ impl Execute for TransferBox { let value = self.object.evaluate(&context)?; Span::current().record("from", source_asset_id.to_string()); - Span::current().record("to", destination_asset_id.to_string()); + Span::current().record("to", destination_account_id.to_string()); iroha_logger::trace!(%value, %authority); match value { Value::Numeric(NumericValue::U32(quantity)) => { - Transfer::new(source_asset_id, quantity, destination_asset_id) + Transfer::new(source_asset_id, quantity, destination_account_id) .execute(authority, wsv) } Value::Numeric(NumericValue::U128(quantity)) => { - Transfer::new(source_asset_id, quantity, destination_asset_id) + Transfer::new(source_asset_id, quantity, destination_account_id) .execute(authority, wsv) } Value::Numeric(NumericValue::Fixed(quantity)) => { - Transfer::new(source_asset_id, quantity, destination_asset_id) + Transfer::new(source_asset_id, quantity, destination_account_id) .execute(authority, wsv) } _ => Err(Error::Evaluate(InstructionType::Transfer.into())), diff --git a/core/src/tx.rs b/core/src/tx.rs index 96e9d86b375..93886fc729c 100644 --- a/core/src/tx.rs +++ b/core/src/tx.rs @@ -278,7 +278,8 @@ fn check_signature_condition( .expect("TRANSACTION_SIGNATORIES_VALUE should be valid."), signatories.into_iter().collect::>(), ); - EvaluatesTo::new_unchecked(where_expr.into()) + + EvaluatesTo::new_unchecked(where_expr) } impl IsInBlockchain for VersionedSignedTransaction { diff --git a/data_model/src/account.rs b/data_model/src/account.rs index 789f0845351..86081060738 100644 --- a/data_model/src/account.rs +++ b/data_model/src/account.rs @@ -308,20 +308,14 @@ impl Default for SignatureCheckCondition { fn default() -> Self { Self( ContainsAny::new( - EvaluatesTo::new_unchecked( - ContextValue::new( - Name::from_str(TRANSACTION_SIGNATORIES_VALUE) - .expect("TRANSACTION_SIGNATORIES_VALUE should be valid."), - ) - .into(), - ), - EvaluatesTo::new_unchecked( - ContextValue::new( - Name::from_str(ACCOUNT_SIGNATORIES_VALUE) - .expect("ACCOUNT_SIGNATORIES_VALUE should be valid."), - ) - .into(), - ), + EvaluatesTo::new_unchecked(ContextValue::new( + Name::from_str(TRANSACTION_SIGNATORIES_VALUE) + .expect("TRANSACTION_SIGNATORIES_VALUE should be valid."), + )), + EvaluatesTo::new_unchecked(ContextValue::new( + Name::from_str(ACCOUNT_SIGNATORIES_VALUE) + .expect("ACCOUNT_SIGNATORIES_VALUE should be valid."), + )), ) .into(), ) diff --git a/data_model/src/evaluate.rs b/data_model/src/evaluate.rs index cb8ba099d3a..c3ac350d694 100644 --- a/data_model/src/evaluate.rs +++ b/data_model/src/evaluate.rs @@ -540,87 +540,74 @@ mod tests { let condition = If::new( And::new( Greater::new( - EvaluatesTo::new_unchecked( - ContextValue::new(Name::from_str("usd_quantity").expect("Can't fail.")) - .into(), - ), + EvaluatesTo::new_unchecked(ContextValue::new( + Name::from_str("usd_quantity").expect("Can't fail."), + )), 500_u32, ), Less::new( - EvaluatesTo::new_unchecked( - ContextValue::new(Name::from_str("usd_quantity").expect("Can't fail.")) - .into(), - ), + EvaluatesTo::new_unchecked(ContextValue::new( + Name::from_str("usd_quantity").expect("Can't fail."), + )), 1000_u32, ), ), - EvaluatesTo::new_evaluates_to_value( - Or::new( - ContainsAll::new( - EvaluatesTo::new_unchecked( - ContextValue::new(Name::from_str("signatories").expect("Can't fail.")) - .into(), - ), - teller_signatory_set.clone(), - ), - Contains::new( - EvaluatesTo::new_unchecked( - ContextValue::new(Name::from_str("signatories").expect("Can't fail.")) - .into(), - ), - manager_signatory, - ), - ) - .into(), - ), + EvaluatesTo::new_evaluates_to_value(Or::new( + ContainsAll::new( + EvaluatesTo::new_unchecked(ContextValue::new( + Name::from_str("signatories").expect("Can't fail."), + )), + teller_signatory_set.clone(), + ), + Contains::new( + EvaluatesTo::new_unchecked(ContextValue::new( + Name::from_str("signatories").expect("Can't fail."), + )), + manager_signatory, + ), + )), true, ); // Signed by all tellers - let expression = Where::new(EvaluatesTo::new_evaluates_to_value( - condition.clone().into(), - )) - .with_value( - //TODO: use query to get the actual quantity of an asset from WSV - // in that case this test should be moved to iroha_core - Name::from_str("usd_quantity").expect("Can't fail."), - asset_quantity_high.clone(), - ) - .with_value( - Name::from_str("signatories").expect("Can't fail."), - teller_signatory_set, - ); + let expression = Where::new(EvaluatesTo::new_evaluates_to_value(condition.clone())) + .with_value( + //TODO: use query to get the actual quantity of an asset from WSV + // in that case this test should be moved to iroha_core + Name::from_str("usd_quantity").expect("Can't fail."), + asset_quantity_high.clone(), + ) + .with_value( + Name::from_str("signatories").expect("Can't fail."), + teller_signatory_set, + ); assert_eq!(expression.evaluate(&TestContext::new())?, Value::Bool(true)); // Signed by manager - let expression = Where::new(EvaluatesTo::new_evaluates_to_value( - condition.clone().into(), - )) - .with_value( - Name::from_str("usd_quantity").expect("Can't fail."), - asset_quantity_high.clone(), - ) - .with_value( - Name::from_str("signatories").expect("Can't fail."), - manager_signatory_set, - ); + let expression = Where::new(EvaluatesTo::new_evaluates_to_value(condition.clone())) + .with_value( + Name::from_str("usd_quantity").expect("Can't fail."), + asset_quantity_high.clone(), + ) + .with_value( + Name::from_str("signatories").expect("Can't fail."), + manager_signatory_set, + ); assert_eq!(expression.evaluate(&TestContext::new())?, Value::Bool(true)); // Signed by one teller - let expression = Where::new(EvaluatesTo::new_evaluates_to_value( - condition.clone().into(), - )) - .with_value( - Name::from_str("usd_quantity").expect("Can't fail."), - asset_quantity_high, - ) - .with_value( - Name::from_str("signatories").expect("Can't fail."), - one_teller_set.clone(), - ); + let expression = Where::new(EvaluatesTo::new_evaluates_to_value(condition.clone())) + .with_value( + Name::from_str("usd_quantity").expect("Can't fail."), + asset_quantity_high, + ) + .with_value( + Name::from_str("signatories").expect("Can't fail."), + one_teller_set.clone(), + ); assert_eq!( expression.evaluate(&TestContext::new())?, Value::Bool(false) ); // Signed by one teller with less value - let expression = Where::new(EvaluatesTo::new_evaluates_to_value(condition.into())) + let expression = Where::new(EvaluatesTo::new_evaluates_to_value(condition)) .with_value( Name::from_str("usd_quantity").expect("Can't fail."), asset_quantity_low, @@ -636,12 +623,12 @@ mod tests { #[test] fn where_expression() -> Result<(), Error> { assert_eq!( - Where::new(EvaluatesTo::new_unchecked( - ContextValue::new(Name::from_str("test_value").expect("Can't fail.")).into() - )) + Where::new(EvaluatesTo::new_unchecked(ContextValue::new( + Name::from_str("test_value").expect("Can't fail.") + ))) .with_value( Name::from_str("test_value").expect("Can't fail."), - EvaluatesTo::new_evaluates_to_value(Add::new(2_u32, 3_u32).into()) + EvaluatesTo::new_evaluates_to_value(Add::new(2_u32, 3_u32)) ) .evaluate(&TestContext::new())?, 5_u32.to_value() @@ -651,21 +638,17 @@ mod tests { #[test] fn nested_where_expression() -> Result<(), Error> { - let expression = Where::new(EvaluatesTo::new_unchecked( - ContextValue::new(Name::from_str("a").expect("Can't fail.")).into(), - )) + let expression = Where::new(EvaluatesTo::new_unchecked(ContextValue::new( + Name::from_str("a").expect("Can't fail."), + ))) .with_value(Name::from_str("a").expect("Can't fail."), 2_u32); - let outer_expression: ExpressionBox = Where::new(EvaluatesTo::new_evaluates_to_value( - Add::new( - EvaluatesTo::new_unchecked(expression.into()), - EvaluatesTo::new_unchecked( - ContextValue::new(Name::from_str("b").expect("Can't fail.")).into(), - ), - ) - .into(), - )) - .with_value(Name::from_str("b").expect("Can't fail."), 4_u32) - .into(); + let outer_expression = Where::new(EvaluatesTo::new_evaluates_to_value(Add::new( + EvaluatesTo::new_unchecked(expression), + EvaluatesTo::new_unchecked(ContextValue::new( + Name::from_str("b").expect("Can't fail."), + )), + ))) + .with_value(Name::from_str("b").expect("Can't fail."), 4_u32); assert_eq!( outer_expression.evaluate(&TestContext::new())?, 6_u32.to_value() @@ -700,34 +683,34 @@ mod tests { assert_eval( &And::new( - EvaluatesTo::new_unchecked(1_u32.into()), - EvaluatesTo::new_unchecked(Vec::::new().into()), + EvaluatesTo::new_unchecked(1_u32), + EvaluatesTo::new_unchecked(Vec::::new()), ), "Should not be possible to apply logical and to int and vec.", ); assert_eval( &Or::new( - EvaluatesTo::new_unchecked(1_u32.into()), - EvaluatesTo::new_unchecked(Vec::::new().into()), + EvaluatesTo::new_unchecked(1_u32), + EvaluatesTo::new_unchecked(Vec::::new()), ), "Should not be possible to apply logical or to int and vec.", ); assert_eval( &Greater::new( - EvaluatesTo::new_unchecked(1_u32.into()), - EvaluatesTo::new_unchecked(Vec::::new().into()), + EvaluatesTo::new_unchecked(1_u32), + EvaluatesTo::new_unchecked(Vec::::new()), ), "Should not be possible to apply greater sign to int and vec.", ); assert_eval( &Less::new( - EvaluatesTo::new_unchecked(1_u32.into()), - EvaluatesTo::new_unchecked(Vec::::new().into()), + EvaluatesTo::new_unchecked(1_u32), + EvaluatesTo::new_unchecked(Vec::::new()), ), "Should not be possible to apply greater sign to int and vec.", ); assert_eval( - &If::new(EvaluatesTo::new_unchecked(1_u32.into()), 2_u32, 3_u32), + &If::new(EvaluatesTo::new_unchecked(1_u32), 2_u32, 3_u32), "If condition should be bool", ); assert_eval( diff --git a/data_model/src/expression.rs b/data_model/src/expression.rs index 9bd41133c72..eeb8e19a3c5 100644 --- a/data_model/src/expression.rs +++ b/data_model/src/expression.rs @@ -101,7 +101,7 @@ use crate::NumericValue; /// /// impl From for EvaluatesTo { /// fn from(expression: Add) -> Self { -/// EvaluatesTo::new_unchecked(expression.into()) +/// EvaluatesTo::new_unchecked(expression) /// } /// } /// ``` @@ -162,7 +162,7 @@ macro_rules! gen_expr_and_impls { (impl_extra_convert $i:ident $result_type:ty) => { impl From<$i> for EvaluatesTo<$result_type> { fn from(expression: $i) -> Self { - EvaluatesTo::new_unchecked(expression.into()) + EvaluatesTo::new_unchecked(expression) } } }; @@ -499,7 +499,7 @@ pub mod model { impl, E: Into + Into> From for EvaluatesTo { fn from(expression: E) -> Self { - Self::new_unchecked(expression.into()) + Self::new_unchecked(expression) } } @@ -523,9 +523,9 @@ impl> EvaluatesTo { /// Prefer using [`Into`] conversions rather than this method, /// because it does not check the value type at compile-time. #[inline] - pub fn new_unchecked(expression: ExpressionBox) -> Self { + pub fn new_unchecked(expression: impl Into) -> Self { Self { - expression, + expression: expression.into(), _value_type: PhantomData::default(), } } @@ -567,7 +567,7 @@ impl EvaluatesTo { /// Construct `EvaluatesTo` from any `expression` /// because all of them evaluate to [`Value`]. #[inline] - pub fn new_evaluates_to_value(expression: ExpressionBox) -> Self { + pub fn new_evaluates_to_value(expression: impl Into) -> Self { Self::new_unchecked(expression) } } diff --git a/data_model/tests/data_model.rs b/data_model/tests/data_model.rs index 7ddac040169..6c4c3bb6ef6 100644 --- a/data_model/tests/data_model.rs +++ b/data_model/tests/data_model.rs @@ -4,77 +4,22 @@ use std::str::FromStr as _; use iroha_data_model::{prelude::*, ParseError}; -fn asset_id_new( - definition_name: &str, - definition_domain: &str, - account_name: &str, - account_domain: &str, -) -> AssetId { - AssetId::new( - AssetDefinitionId::new( - definition_name.parse().expect("Valid"), - definition_domain.parse().expect("Valid"), - ), - AccountId::new( - account_name.parse().expect("Valid"), - account_domain.parse().expect("Valid"), - ), - ) -} - #[test] -fn find_rate_and_make_exchange_isi_should_be_valid() { - let _instruction = Pair::new( - TransferBox::new( - IdBox::AssetId(asset_id_new("btc", "crypto", "seller", "company")), - EvaluatesTo::new_evaluates_to_value( - Expression::Query( - FindAssetQuantityById::new(asset_id_new( - "btc2eth_rate", - "exchange", - "dex", - "exchange", - )) - .into(), - ) - .into(), - ), - IdBox::AssetId(asset_id_new("btc", "crypto", "buyer", "company")), - ), - TransferBox::new( - IdBox::AssetId(asset_id_new("btc", "crypto", "buyer", "company")), - EvaluatesTo::new_evaluates_to_value( - Expression::Query( - FindAssetQuantityById::new(asset_id_new( - "btc2eth_rate", - "exchange", - "dex", - "exchange", - )) - .into(), - ) - .into(), - ), - IdBox::AssetId(asset_id_new("btc", "crypto", "seller", "company")), - ), +fn transfer_isi_should_be_valid() { + let _instruction = TransferBox::new( + IdBox::AssetId("btc##seller@crypto".parse().expect("Valid")), + 12_u32, + IdBox::AccountId("buyer@crypto".parse().expect("Valid")), ); } #[test] -fn find_rate_and_check_it_greater_than_value_isi_should_be_valid() { +fn find_quantity_and_check_it_greater_than_value_isi_should_be_valid() { + let asset_id: AssetId = "rose##alice@wonderland".parse().expect("Valid"); + let find_asset = QueryBox::from(FindAssetQuantityById::new(asset_id)); + let _instruction = Conditional::new( - Not::new(Greater::new( - EvaluatesTo::new_unchecked( - QueryBox::from(FindAssetQuantityById::new(asset_id_new( - "btc2eth_rate", - "exchange", - "dex", - "exchange", - ))) - .into(), - ), - 10_u32, - )), + Not::new(Greater::new(EvaluatesTo::new_unchecked(find_asset), 10_u32)), FailBox::new("rate is less or equal to value"), ); } @@ -97,15 +42,14 @@ impl FindRateAndCheckItGreaterThanValue { pub fn into_isi(self) -> Conditional { Conditional::new( Not::new(Greater::new( - EvaluatesTo::new_unchecked( - QueryBox::from(FindAssetQuantityById::new(AssetId::new( + EvaluatesTo::new_unchecked(QueryBox::from(FindAssetQuantityById::new( + AssetId::new( format!("{}2{}_rate#exchange", self.from_currency, self.to_currency) .parse() .expect("Valid"), AccountId::from_str("dex@exchange").expect("Valid"), - ))) - .into(), - ), + ), + ))), self.value, )), FailBox::new("rate is less or equal to value"), diff --git a/default_validator/src/isi/asset.rs b/default_validator/src/isi/asset.rs index b36c7ce9439..87ed47d5684 100644 --- a/default_validator/src/isi/asset.rs +++ b/default_validator/src/isi/asset.rs @@ -220,7 +220,7 @@ impl DefaultValidate for Mint { } } -impl DefaultValidate for Transfer { +impl DefaultValidate for Transfer { fn default_validate( &self, authority: &::Id, diff --git a/default_validator/src/isi/mod.rs b/default_validator/src/isi/mod.rs index 4dddfb31fd4..9c44dcffe9d 100644 --- a/default_validator/src/isi/mod.rs +++ b/default_validator/src/isi/mod.rs @@ -257,7 +257,7 @@ impl DefaultValidate for TransferBox { { let object = evaluate_field!(authority, validate_query, ::object); - let (IdBox::AssetId(source_asset_id), IdBox::AssetId(destination_asset_id)) = ( + let (IdBox::AssetId(source_asset_id), IdBox::AccountId(destination_account_id)) = ( evaluate_field!(authority, validate_query, ::source_id), evaluate_field!(authority, validate_query, ::destination_id), ) else { @@ -268,7 +268,7 @@ impl DefaultValidate for TransferBox { (Value::Numeric(NumericValue::U32(quantity))) | (Value::Numeric(NumericValue::U128(quantity))) | (Value::Numeric(NumericValue::Fixed(quantity))) => { - Transfer::new(source_asset_id, quantity, destination_asset_id).default_validate(authority, validate_query) + Transfer::new(source_asset_id, quantity, destination_account_id).default_validate(authority, validate_query) } _ => deny_unsupported_instruction!(Transfer) })