From 16b25d053bc9c6cdb499bccd6df3a3537700db40 Mon Sep 17 00:00:00 2001 From: Ilia Churin Date: Mon, 13 Nov 2023 20:57:50 +0900 Subject: [PATCH] [feature] #3871: Add `Register`/`Register`/`Mint` permissions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Ilia Churin Signed-off-by: Marin Veršić --- .github/workflows/iroha2-dev-pr-static.yml | 4 +- Cargo.lock | 4 +- Cargo.toml | 4 +- client/tests/integration/asset.rs | 2 +- client/tests/integration/domain_owner.rs | 83 +++++++++++++++--- client/tests/integration/permissions.rs | 12 +-- .../src/lib.rs | 9 ++ .../executor_with_custom_token/src/lib.rs | 4 +- client_cli/src/main.rs | 2 +- configs/peer/executor.wasm | Bin 478481 -> 491991 bytes configs/peer/genesis.json | 26 ++++++ core/benches/blocks/common.rs | 6 +- core/test_network/src/lib.rs | 6 +- data_model/src/isi.rs | 4 +- smart_contract/executor/derive/src/lib.rs | 1 + smart_contract/executor/src/default.rs | 70 ++++++++++++--- smart_contract/executor/src/default/tokens.rs | 47 +++++++--- tools/kagami/src/genesis.rs | 48 ++++++---- torii/Cargo.toml | 2 +- torii/{macro => derive}/Cargo.toml | 2 +- torii/{macro => derive}/src/lib.rs | 2 +- torii/src/utils.rs | 2 +- 22 files changed, 262 insertions(+), 78 deletions(-) rename torii/{macro => derive}/Cargo.toml (92%) rename torii/{macro => derive}/src/lib.rs (99%) diff --git a/.github/workflows/iroha2-dev-pr-static.yml b/.github/workflows/iroha2-dev-pr-static.yml index 06effe3e687..bc44c92101e 100644 --- a/.github/workflows/iroha2-dev-pr-static.yml +++ b/.github/workflows/iroha2-dev-pr-static.yml @@ -47,10 +47,10 @@ jobs: run: cargo fmt --all -- --check - name: Lints without features if: always() - run: cargo clippy -Zlints --workspace --benches --tests --examples --no-default-features --quiet + run: cargo clippy --workspace --benches --tests --examples --no-default-features --quiet - name: Lints with all features enabled if: always() - run: cargo clippy -Zlints --workspace --benches --tests --examples --all-features --quiet + run: cargo clippy --workspace --benches --tests --examples --all-features --quiet - name: Documentation if: always() run: cargo doc --no-deps --quiet diff --git a/Cargo.lock b/Cargo.lock index 2add67a0266..9e686724df6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3202,7 +3202,7 @@ dependencies = [ "iroha_primitives", "iroha_schema_gen", "iroha_telemetry", - "iroha_torii_macro", + "iroha_torii_derive", "iroha_version", "parity-scale-codec", "serde", @@ -3213,7 +3213,7 @@ dependencies = [ ] [[package]] -name = "iroha_torii_macro" +name = "iroha_torii_derive" version = "2.0.0-pre-rc.20" dependencies = [ "manyhow", diff --git a/Cargo.toml b/Cargo.toml index b128a0bca55..e47154c4890 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,7 @@ categories = ["cryptography::cryptocurrencies"] iroha = { path = "cli" } iroha_dsl = { version = "=2.0.0-pre-rc.20", path = "dsl" } iroha_torii = { version = "=2.0.0-pre-rc.20", path = "torii" } -iroha_torii_macro = { version = "=2.0.0-pre-rc.20", path = "torii/macro" } +iroha_torii_derive = { version = "=2.0.0-pre-rc.20", path = "torii/derive" } iroha_macro_utils = { version = "=2.0.0-pre-rc.20", path = "macro/utils" } iroha_telemetry = { version = "=2.0.0-pre-rc.20", path = "telemetry" } iroha_telemetry_derive = { version = "=2.0.0-pre-rc.20", path = "telemetry/derive" } @@ -241,7 +241,7 @@ members = [ "tools/wasm_builder_cli", "tools/wasm_test_runner", "torii", - "torii/macro", + "torii/derive", "version", "version/derive", "wasm_codec", diff --git a/client/tests/integration/asset.rs b/client/tests/integration/asset.rs index beac868a71a..9ac0687fbaa 100644 --- a/client/tests/integration/asset.rs +++ b/client/tests/integration/asset.rs @@ -269,7 +269,7 @@ fn find_rate_and_make_exchange_isi_should_succeed() { }; let grant_alice_asset_transfer_permission = |asset_id: AssetId, owner_keypair: KeyPair| { - let allow_alice_to_transfer_asset = Grant::permission_token( + let allow_alice_to_transfer_asset = Grant::permission( PermissionToken::new( "CanTransferUserAsset".parse().unwrap(), &json!({ "asset_id": asset_id }), diff --git a/client/tests/integration/domain_owner.rs b/client/tests/integration/domain_owner.rs index b159fa34cbd..2ffc467ac42 100644 --- a/client/tests/integration/domain_owner.rs +++ b/client/tests/integration/domain_owner.rs @@ -8,15 +8,59 @@ use test_network::*; #[test] fn domain_owner_domain_permissions() -> Result<()> { + let chain_id = ChainId::new("0"); + let (_rt, _peer, test_client) = ::new().with_port(11_080).start_with_runtime(); wait_for_genesis_committed(&[test_client.clone()], 0); let kingdom_id: DomainId = "kingdom".parse()?; + let bob_id: AccountId = "bob@kingdom".parse()?; + let coin_id: AssetDefinitionId = "coin#kingdom".parse()?; + let coin = AssetDefinition::quantity(coin_id.clone()); // "alice@wonderland" is owner of "kingdom" domain let kingdom = Domain::new(kingdom_id.clone()); test_client.submit_blocking(Register::domain(kingdom))?; + let bob_keypair = KeyPair::generate()?; + let bob = Account::new(bob_id.clone(), [bob_keypair.public_key().clone()]); + test_client.submit_blocking(Register::account(bob))?; + + // Asset definitions can't be registered by "bob@kingdom" by default + let transaction = TransactionBuilder::new(chain_id.clone(), bob_id.clone()) + .with_instructions([Register::asset_definition(coin.clone())]) + .sign(bob_keypair.clone())?; + let err = test_client + .submit_transaction_blocking(&transaction) + .expect_err("Tx should fail due to permissions"); + + let rejection_reason = err + .downcast_ref::() + .unwrap_or_else(|| panic!("Error {err} is not PipelineRejectionReason")); + + assert!(matches!( + rejection_reason, + &PipelineRejectionReason::Transaction(TransactionRejectionReason::Validation( + ValidationFail::NotPermitted(_) + )) + )); + + // "alice@wonderland" owns the domain and can register AssetDefinitions by default as domain owner + test_client.submit_blocking(Register::asset_definition(coin.clone()))?; + test_client.submit_blocking(Unregister::asset_definition(coin_id))?; + + // Granting a respective token also allows "bob@kingdom" to do so + let token = PermissionToken::new( + "CanRegisterAssetDefinitionInDomain".parse().unwrap(), + &json!({ "domain_id": kingdom_id }), + ); + test_client.submit_blocking(Grant::permission(token.clone(), bob_id.clone()))?; + let transaction = TransactionBuilder::new(chain_id, bob_id.clone()) + .with_instructions([Register::asset_definition(coin)]) + .sign(bob_keypair)?; + test_client.submit_transaction_blocking(&transaction)?; + test_client.submit_blocking(Revoke::permission(token, bob_id.clone()))?; + // check that "alice@wonderland" as owner of domain can edit metadata in her domain let key: Name = "key".parse()?; let value: Name = "value".parse()?; @@ -24,13 +68,12 @@ fn domain_owner_domain_permissions() -> Result<()> { test_client.submit_blocking(RemoveKeyValue::domain(kingdom_id.clone(), key))?; // check that "alice@wonderland" as owner of domain can grant and revoke domain related permission tokens - let bob_id: AccountId = "bob@wonderland".parse()?; let token = PermissionToken::new( "CanUnregisterDomain".parse().unwrap(), &json!({ "domain_id": kingdom_id }), ); - test_client.submit_blocking(Grant::permission_token(token.clone(), bob_id.clone()))?; - test_client.submit_blocking(Revoke::permission_token(token, bob_id))?; + test_client.submit_blocking(Grant::permission(token.clone(), bob_id.clone()))?; + test_client.submit_blocking(Revoke::permission(token, bob_id))?; // check that "alice@wonderland" as owner of domain can unregister her domain test_client.submit_blocking(Unregister::domain(kingdom_id))?; @@ -90,8 +133,8 @@ fn domain_owner_account_permissions() -> Result<()> { "CanUnregisterAccount".parse().unwrap(), &json!({ "account_id": mad_hatter_id }), ); - test_client.submit_blocking(Grant::permission_token(token.clone(), bob_id.clone()))?; - test_client.submit_blocking(Revoke::permission_token(token, bob_id))?; + test_client.submit_blocking(Grant::permission(token.clone(), bob_id.clone()))?; + test_client.submit_blocking(Revoke::permission(token, bob_id))?; // check that "alice@wonderland" as owner of domain can unregister accounts in her domain test_client.submit_blocking(Unregister::account(mad_hatter_id))?; @@ -111,7 +154,7 @@ fn domain_owner_asset_definition_permissions() -> Result<()> { let coin_id: AssetDefinitionId = "coin#kingdom".parse()?; // "alice@wonderland" is owner of "kingdom" domain - let kingdom = Domain::new(kingdom_id); + let kingdom = Domain::new(kingdom_id.clone()); test_client.submit_blocking(Register::domain(kingdom))?; let bob_keypair = KeyPair::generate()?; @@ -121,6 +164,13 @@ fn domain_owner_asset_definition_permissions() -> Result<()> { let rabbit = Account::new(rabbit_id.clone(), []); test_client.submit_blocking(Register::account(rabbit))?; + // Grant permission to register asset definitions to "bob@kingdom" + let token = PermissionToken::new( + "CanRegisterAssetDefinitionInDomain".parse().unwrap(), + &json!({ "domain_id": kingdom_id }), + ); + test_client.submit_blocking(Grant::permission(token, bob_id.clone()))?; + // register asset definitions by "bob@kingdom" so he is owner of it let coin = AssetDefinition::quantity(coin_id.clone()); let transaction = TransactionBuilder::new(chain_id, bob_id.clone()) @@ -151,8 +201,8 @@ fn domain_owner_asset_definition_permissions() -> Result<()> { "CanUnregisterAssetDefinition".parse().unwrap(), &json!({ "asset_definition_id": coin_id }), ); - test_client.submit_blocking(Grant::permission_token(token.clone(), bob_id.clone()))?; - test_client.submit_blocking(Revoke::permission_token(token, bob_id))?; + test_client.submit_blocking(Grant::permission(token.clone(), bob_id.clone()))?; + test_client.submit_blocking(Revoke::permission(token, bob_id))?; // check that "alice@wonderland" as owner of domain can unregister asset definitions in her domain test_client.submit_blocking(Unregister::asset_definition(coin_id))?; @@ -174,13 +224,20 @@ fn domain_owner_asset_permissions() -> Result<()> { let store_id: AssetDefinitionId = "store#kingdom".parse()?; // "alice@wonderland" is owner of "kingdom" domain - let kingdom = Domain::new(kingdom_id); + let kingdom = Domain::new(kingdom_id.clone()); test_client.submit_blocking(Register::domain(kingdom))?; let bob_keypair = KeyPair::generate()?; let bob = Account::new(bob_id.clone(), [bob_keypair.public_key().clone()]); test_client.submit_blocking(Register::account(bob))?; + // Grant permission to register asset definitions to "bob@kingdom" + let token = PermissionToken::new( + "CanRegisterAssetDefinitionInDomain".parse().unwrap(), + &json!({ "domain_id": kingdom_id }), + ); + test_client.submit_blocking(Grant::permission(token, bob_id.clone()))?; + // register asset definitions by "bob@kingdom" so he is owner of it let coin = AssetDefinition::quantity(coin_id.clone()); let store = AssetDefinition::store(store_id.clone()); @@ -216,8 +273,8 @@ fn domain_owner_asset_permissions() -> Result<()> { "CanUnregisterUserAsset".parse().unwrap(), &json!({ "asset_id": bob_store_id }), ); - test_client.submit_blocking(Grant::permission_token(token.clone(), bob_id.clone()))?; - test_client.submit_blocking(Revoke::permission_token(token, bob_id))?; + test_client.submit_blocking(Grant::permission(token.clone(), bob_id.clone()))?; + test_client.submit_blocking(Revoke::permission(token, bob_id))?; Ok(()) } @@ -273,8 +330,8 @@ fn domain_owner_trigger_permissions() -> Result<()> { "CanUnregisterUserTrigger".parse().unwrap(), &json!({ "trigger_id": trigger_id }), ); - test_client.submit_blocking(Grant::permission_token(token.clone(), bob_id.clone()))?; - test_client.submit_blocking(Revoke::permission_token(token, bob_id))?; + test_client.submit_blocking(Grant::permission(token.clone(), bob_id.clone()))?; + test_client.submit_blocking(Revoke::permission(token, bob_id))?; // check that "alice@wonderland" as owner of domain can unregister triggers in her domain test_client.submit_blocking(Unregister::trigger(trigger_id))?; diff --git a/client/tests/integration/permissions.rs b/client/tests/integration/permissions.rs index beb8ffd6de0..6aa19bb0709 100644 --- a/client/tests/integration/permissions.rs +++ b/client/tests/integration/permissions.rs @@ -17,7 +17,7 @@ fn genesis_transactions_are_validated() { // Setting up genesis - let genesis = GenesisNetwork::test_with_instructions([Grant::permission_token( + let genesis = GenesisNetwork::test_with_instructions([Grant::permission( PermissionToken::new("InvalidToken".parse().unwrap(), &json!(null)), AccountId::from_str("alice@wonderland").unwrap(), ) @@ -224,7 +224,7 @@ fn permissions_differ_not_only_by_names() { // Granting permission to Alice to modify metadata in Mouse's hats let mouse_hat_id = AssetId::new(hat_definition_id, mouse_id.clone()); - let allow_alice_to_set_key_value_in_hats = Grant::permission_token( + let allow_alice_to_set_key_value_in_hats = Grant::permission( PermissionToken::new( "CanSetKeyValueInUserAsset".parse().unwrap(), &json!({ "asset_id": mouse_hat_id }), @@ -261,7 +261,7 @@ fn permissions_differ_not_only_by_names() { .expect_err("Expected Alice to fail to modify Mouse's shoes"); // Granting permission to Alice to modify metadata in Mouse's shoes - let allow_alice_to_set_key_value_in_shoes = Grant::permission_token( + let allow_alice_to_set_key_value_in_shoes = Grant::permission( PermissionToken::new( "CanSetKeyValueInUserAsset".parse().unwrap(), &json!({ "asset_id": mouse_shoes_id }), @@ -312,7 +312,7 @@ fn stored_vs_granted_token_payload() -> Result<()> { // Allow alice to mint mouse asset and mint initial value let mouse_asset = AssetId::new(asset_definition_id, mouse_id.clone()); - let allow_alice_to_set_key_value_in_mouse_asset = Grant::permission_token( + let allow_alice_to_set_key_value_in_mouse_asset = Grant::permission( PermissionToken::from_str_unchecked( "CanSetKeyValueInUserAsset".parse().unwrap(), // NOTE: Introduced additional whitespaces in the serialized form @@ -347,7 +347,7 @@ fn permission_tokens_are_unified() { // Given let alice_id = AccountId::from_str("alice@wonderland").expect("Valid"); - let allow_alice_to_transfer_rose_1 = Grant::permission_token( + let allow_alice_to_transfer_rose_1 = Grant::permission( PermissionToken::from_str_unchecked( "CanTransferUserAsset".parse().unwrap(), // NOTE: Introduced additional whitespaces in the serialized form @@ -356,7 +356,7 @@ fn permission_tokens_are_unified() { alice_id.clone(), ); - let allow_alice_to_transfer_rose_2 = Grant::permission_token( + let allow_alice_to_transfer_rose_2 = Grant::permission( PermissionToken::from_str_unchecked( "CanTransferUserAsset".parse().unwrap(), // NOTE: Introduced additional whitespaces in the serialized form diff --git a/client/tests/integration/smartcontracts/create_nft_for_every_user_trigger/src/lib.rs b/client/tests/integration/smartcontracts/create_nft_for_every_user_trigger/src/lib.rs index bce2802adcb..d9df633498d 100644 --- a/client/tests/integration/smartcontracts/create_nft_for_every_user_trigger/src/lib.rs +++ b/client/tests/integration/smartcontracts/create_nft_for_every_user_trigger/src/lib.rs @@ -21,9 +21,18 @@ fn main(_owner: AccountId, _event: Event) { let limits = MetadataLimits::new(256, 256); + let bad_domain_ids: [DomainId; 2] = [ + "genesis".parse().dbg_unwrap(), + "garden_of_live_flowers".parse().dbg_unwrap(), + ]; + for account in accounts_cursor { let account = account.dbg_unwrap(); + if bad_domain_ids.contains(account.id().domain_id()) { + continue; + } + let mut metadata = Metadata::new(); let name = format!( "nft_for_{}_in_{}", diff --git a/client/tests/integration/smartcontracts/executor_with_custom_token/src/lib.rs b/client/tests/integration/smartcontracts/executor_with_custom_token/src/lib.rs index bd9322a7f87..65c48e2db59 100644 --- a/client/tests/integration/smartcontracts/executor_with_custom_token/src/lib.rs +++ b/client/tests/integration/smartcontracts/executor_with_custom_token/src/lib.rs @@ -118,7 +118,7 @@ impl Executor { accounts .iter() .try_for_each(|(account, domain_id)| { - Revoke::permission_token( + Revoke::permission( PermissionToken::new( can_unregister_domain_definition_id.clone(), &json!({ "domain_id": domain_id }), @@ -137,7 +137,7 @@ impl Executor { ) })?; - Grant::permission_token( + Grant::permission( PermissionToken::new( can_control_domain_lives_definition_id.clone(), &json!(null), diff --git a/client_cli/src/main.rs b/client_cli/src/main.rs index 05b9121302c..2084d35d562 100644 --- a/client_cli/src/main.rs +++ b/client_cli/src/main.rs @@ -724,7 +724,7 @@ mod account { permission, metadata, } = self; - let grant = iroha_client::data_model::isi::Grant::permission_token(permission.0, id); + let grant = iroha_client::data_model::isi::Grant::permission(permission.0, id); submit([grant], metadata.load()?, context) .wrap_err("Failed to grant the permission to the account") } diff --git a/configs/peer/executor.wasm b/configs/peer/executor.wasm index 194481b0e0dc75c982452a2c1ebf35a7d076047b..24b10645278a3c2c53a6a88f61aa33612793d264 100644 GIT binary patch delta 143885 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�$7bL_?`}D=~u>YVVF9;CDTxrIfBc$)AHG>k<{4- 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 diff --git a/configs/peer/genesis.json b/configs/peer/genesis.json index a915d22f4f8..1a234946fc9 100644 --- a/configs/peer/genesis.json +++ b/configs/peer/genesis.json @@ -117,6 +117,32 @@ } } }, + { + "Grant": { + "PermissionToken": { + "object": { + "definition_id": "CanRegisterAssetDefinitionInDomain", + "payload": { + "domain_id": "wonderland" + } + }, + "destination_id": "alice@wonderland" + } + } + }, + { + "Grant": { + "PermissionToken": { + "object": { + "definition_id": "CanRegisterAccountInDomain", + "payload": { + "domain_id": "wonderland" + } + }, + "destination_id": "alice@wonderland" + } + } + }, { "NewParameter": "?MaxTransactionsInBlock=512" }, diff --git a/core/benches/blocks/common.rs b/core/benches/blocks/common.rs index f8969b2f16b..1b492d1fb89 100644 --- a/core/benches/blocks/common.rs +++ b/core/benches/blocks/common.rs @@ -66,7 +66,7 @@ pub fn populate_wsv( let domain_id = construct_domain_id(i); let domain = Domain::new(domain_id.clone()); instructions.push(Register::domain(domain).into()); - let can_unregister_domain = Grant::permission_token( + let can_unregister_domain = Grant::permission( PermissionToken::new( "CanUnregisterDomain".parse().unwrap(), &json!({ "domain_id": domain_id.clone() }), @@ -78,7 +78,7 @@ pub fn populate_wsv( let account_id = construct_account_id(j, domain_id.clone()); let account = Account::new(account_id.clone(), []); instructions.push(Register::account(account).into()); - let can_unregister_account = Grant::permission_token( + let can_unregister_account = Grant::permission( PermissionToken::new( "CanUnregisterAccount".parse().unwrap(), &json!({ "account_id": account_id.clone() }), @@ -94,7 +94,7 @@ pub fn populate_wsv( iroha_data_model::asset::AssetValueType::Quantity, ); instructions.push(Register::asset_definition(asset_definition).into()); - let can_unregister_asset_definition = Grant::permission_token( + let can_unregister_asset_definition = Grant::permission( PermissionToken::new( "CanUnregisterAssetDefinition".parse().unwrap(), &json!({ "asset_definition_id": asset_definition_id }), diff --git a/core/test_network/src/lib.rs b/core/test_network/src/lib.rs index 90686cde43f..d138addc7aa 100644 --- a/core/test_network/src/lib.rs +++ b/core/test_network/src/lib.rs @@ -94,11 +94,11 @@ impl TestGenesis for GenesisNetwork { let alice_id = AccountId::from_str("alice@wonderland").expect("valid names"); let mint_rose_permission = PermissionToken::new( - "CanMintAssetsWithDefinition".parse().unwrap(), + "CanMintAssetWithDefinition".parse().unwrap(), &json!({ "asset_definition_id": rose_definition_id }), ); let burn_rose_permission = PermissionToken::new( - "CanBurnAssetsWithDefinition".parse().unwrap(), + "CanBurnAssetWithDefinition".parse().unwrap(), &json!({ "asset_definition_id": rose_definition_id }), ); let unregister_any_peer_permission = @@ -124,7 +124,7 @@ impl TestGenesis for GenesisNetwork { upgrade_executor_permission, ] { first_transaction - .append_instruction(Grant::permission_token(permission, alice_id.clone()).into()); + .append_instruction(Grant::permission(permission, alice_id.clone()).into()); } for isi in extra_isi.into_iter() { diff --git a/data_model/src/isi.rs b/data_model/src/isi.rs index 4bbfa0de0d7..94f039982e7 100644 --- a/data_model/src/isi.rs +++ b/data_model/src/isi.rs @@ -902,7 +902,7 @@ mod transparent { impl Grant { /// Constructs a new [`Grant`] for a [`PermissionToken`]. - pub fn permission_token(permission_token: PermissionToken, to: AccountId) -> Self { + pub fn permission(permission_token: PermissionToken, to: AccountId) -> Self { Self { object: permission_token, destination_id: to, @@ -947,7 +947,7 @@ mod transparent { impl Revoke { /// Constructs a new [`Revoke`] for a [`PermissionToken`]. - pub fn permission_token(permission_token: PermissionToken, from: AccountId) -> Self { + pub fn permission(permission_token: PermissionToken, from: AccountId) -> Self { Self { object: permission_token, destination_id: from, diff --git a/smart_contract/executor/derive/src/lib.rs b/smart_contract/executor/derive/src/lib.rs index 71d682c974c..c9bc81dc6d8 100644 --- a/smart_contract/executor/derive/src/lib.rs +++ b/smart_contract/executor/derive/src/lib.rs @@ -128,6 +128,7 @@ pub fn derive_token(input: TokenStream) -> Result { /// - `asset_definition::Owner` - checks if the authority is the asset definition owner; /// - `asset::Owner` - checks if the authority is the asset owner; /// - `account::Owner` - checks if the authority is the account owner. +/// - `domain::Owner` - checks if the authority is the domain owner. /// - `AlwaysPass` - checks nothing and always passes. /// - `OnlyGenesis` - checks that block height is 0. /// diff --git a/smart_contract/executor/src/default.rs b/smart_contract/executor/src/default.rs index 0c7eafa30f2..81a6ba438b4 100644 --- a/smart_contract/executor/src/default.rs +++ b/smart_contract/executor/src/default.rs @@ -57,6 +57,11 @@ pub fn default_permission_token_schema() -> PermissionTokenSchema { schema } +// NOTE: If any new `visit_..` functions are introduced in this module, one should +// not forget to update the default executor boilerplate too, specifically the +// `iroha_executor::derive::default::impl_derive_visit` function +// signature list. + /// Default validation for [`SignedTransaction`]. /// /// # Warning @@ -282,10 +287,28 @@ pub mod account { pub fn visit_register_account( executor: &mut V, - _authority: &AccountId, + authority: &AccountId, isi: &Register, ) { - execute!(executor, isi) + let domain_id = isi.object().id().domain_id(); + + match permission::domain::is_domain_owner(domain_id, authority) { + Err(err) => deny!(executor, err), + Ok(true) => execute!(executor, isi), + Ok(false) => {} + } + + let can_register_account_in_domain = tokens::domain::CanRegisterAccountInDomain { + domain_id: domain_id.clone(), + }; + if can_register_account_in_domain.is_owned_by(authority) { + execute!(executor, isi); + } + + deny!( + executor, + "Can't register account in a domain owned by another account" + ); } pub fn visit_unregister_account( @@ -458,10 +481,29 @@ pub mod asset_definition { pub fn visit_register_asset_definition( executor: &mut V, - _authority: &AccountId, + authority: &AccountId, isi: &Register, ) { - execute!(executor, isi); + let domain_id = isi.object().id().domain_id(); + + match permission::domain::is_domain_owner(domain_id, authority) { + Err(err) => deny!(executor, err), + Ok(true) => execute!(executor, isi), + Ok(false) => {} + } + + let can_register_asset_definition_in_domain_token = + tokens::domain::CanRegisterAssetDefinitionInDomain { + domain_id: domain_id.clone(), + }; + if can_register_asset_definition_in_domain_token.is_owned_by(authority) { + execute!(executor, isi); + } + + deny!( + executor, + "Can't register asset definition in a domain owned by another account" + ); } pub fn visit_unregister_asset_definition( @@ -489,7 +531,7 @@ pub mod asset_definition { deny!( executor, - "Can't unregister assets registered by other accounts" + "Can't unregister asset definition in a domain owned by another account" ); } @@ -603,7 +645,7 @@ pub mod asset { Ok(false) => {} } let can_register_assets_with_definition_token = - tokens::asset::CanRegisterAssetsWithDefinition { + tokens::asset::CanRegisterAssetWithDefinition { asset_definition_id: asset.id().definition_id().clone(), }; if can_register_assets_with_definition_token.is_owned_by(authority) { @@ -637,7 +679,7 @@ pub mod asset { Ok(false) => {} } let can_unregister_assets_with_definition_token = - tokens::asset::CanUnregisterAssetsWithDefinition { + tokens::asset::CanUnregisterAssetWithDefinition { asset_definition_id: asset_id.definition_id().clone(), }; if can_unregister_assets_with_definition_token.is_owned_by(authority) { @@ -668,12 +710,18 @@ pub mod asset { Ok(true) => execute!(executor, isi), Ok(false) => {} } - let can_mint_assets_with_definition_token = tokens::asset::CanMintAssetsWithDefinition { + let can_mint_assets_with_definition_token = tokens::asset::CanMintAssetWithDefinition { asset_definition_id: asset_id.definition_id().clone(), }; if can_mint_assets_with_definition_token.is_owned_by(authority) { execute!(executor, isi); } + let can_mint_user_asset_token = tokens::asset::CanMintUserAsset { + asset_id: asset_id.clone(), + }; + if can_mint_user_asset_token.is_owned_by(authority) { + execute!(executor, isi); + } deny!( executor, @@ -725,7 +773,7 @@ pub mod asset { Ok(true) => execute!(executor, isi), Ok(false) => {} } - let can_burn_assets_with_definition_token = tokens::asset::CanBurnAssetsWithDefinition { + let can_burn_assets_with_definition_token = tokens::asset::CanBurnAssetWithDefinition { asset_definition_id: asset_id.definition_id().clone(), }; if can_burn_assets_with_definition_token.is_owned_by(authority) { @@ -789,7 +837,7 @@ pub mod asset { Ok(false) => {} } let can_transfer_assets_with_definition_token = - tokens::asset::CanTransferAssetsWithDefinition { + tokens::asset::CanTransferAssetWithDefinition { asset_definition_id: asset_id.definition_id().clone(), }; if can_transfer_assets_with_definition_token.is_owned_by(authority) { @@ -1182,7 +1230,7 @@ pub mod permission_token { macro_rules! visit_internal { ($token:ident) => { let token = PermissionToken::from($token.clone()); - let isi = <$isi_type>::permission_token(token, account_id); + let isi = <$isi_type>::permission(token, account_id); if is_genesis($executor) { execute!($executor, isi); } diff --git a/smart_contract/executor/src/default/tokens.rs b/smart_contract/executor/src/default/tokens.rs index 97382cc7806..3deb532f5eb 100644 --- a/smart_contract/executor/src/default/tokens.rs +++ b/smart_contract/executor/src/default/tokens.rs @@ -70,6 +70,8 @@ declare_tokens! { crate::default::tokens::domain::{CanUnregisterDomain}, crate::default::tokens::domain::{CanSetKeyValueInDomain}, crate::default::tokens::domain::{CanRemoveKeyValueInDomain}, + crate::default::tokens::domain::{CanRegisterAccountInDomain}, + crate::default::tokens::domain::{CanRegisterAssetDefinitionInDomain}, crate::default::tokens::account::{CanUnregisterAccount}, crate::default::tokens::account::{CanMintUserPublicKeys}, @@ -82,13 +84,14 @@ declare_tokens! { crate::default::tokens::asset_definition::{CanSetKeyValueInAssetDefinition}, crate::default::tokens::asset_definition::{CanRemoveKeyValueInAssetDefinition}, - crate::default::tokens::asset::{CanRegisterAssetsWithDefinition}, - crate::default::tokens::asset::{CanUnregisterAssetsWithDefinition}, + crate::default::tokens::asset::{CanRegisterAssetWithDefinition}, + crate::default::tokens::asset::{CanUnregisterAssetWithDefinition}, crate::default::tokens::asset::{CanUnregisterUserAsset}, - crate::default::tokens::asset::{CanBurnAssetsWithDefinition}, + crate::default::tokens::asset::{CanBurnAssetWithDefinition}, + crate::default::tokens::asset::{CanMintAssetWithDefinition}, + crate::default::tokens::asset::{CanMintUserAsset}, crate::default::tokens::asset::{CanBurnUserAsset}, - crate::default::tokens::asset::{CanMintAssetsWithDefinition}, - crate::default::tokens::asset::{CanTransferAssetsWithDefinition}, + crate::default::tokens::asset::{CanTransferAssetWithDefinition}, crate::default::tokens::asset::{CanTransferUserAsset}, crate::default::tokens::asset::{CanSetKeyValueInUserAsset}, crate::default::tokens::asset::{CanRemoveKeyValueInUserAsset}, @@ -146,6 +149,22 @@ pub mod domain { pub domain_id: DomainId, } } + + token! { + #[derive(ValidateGrantRevoke, permission::derive_conversions::domain::Owner)] + #[validate(permission::domain::Owner)] + pub struct CanRegisterAccountInDomain { + pub domain_id: DomainId, + } + } + + token! { + #[derive(ValidateGrantRevoke, permission::derive_conversions::domain::Owner)] + #[validate(permission::domain::Owner)] + pub struct CanRegisterAssetDefinitionInDomain { + pub domain_id: DomainId, + } + } } pub mod account { @@ -229,7 +248,7 @@ pub mod asset { token! { #[derive(ValidateGrantRevoke, permission::derive_conversions::asset_definition::Owner)] #[validate(permission::asset_definition::Owner)] - pub struct CanRegisterAssetsWithDefinition { + pub struct CanRegisterAssetWithDefinition { pub asset_definition_id: AssetDefinitionId, } } @@ -237,7 +256,7 @@ pub mod asset { token! { #[derive(ValidateGrantRevoke, permission::derive_conversions::asset_definition::Owner)] #[validate(permission::asset_definition::Owner)] - pub struct CanUnregisterAssetsWithDefinition { + pub struct CanUnregisterAssetWithDefinition { pub asset_definition_id: AssetDefinitionId, } } @@ -253,7 +272,7 @@ pub mod asset { token! { #[derive(ValidateGrantRevoke, permission::derive_conversions::asset_definition::Owner)] #[validate(permission::asset_definition::Owner)] - pub struct CanBurnAssetsWithDefinition { + pub struct CanBurnAssetWithDefinition { pub asset_definition_id: AssetDefinitionId, } } @@ -269,15 +288,23 @@ pub mod asset { token! { #[derive(ValidateGrantRevoke, permission::derive_conversions::asset_definition::Owner)] #[validate(permission::asset_definition::Owner)] - pub struct CanMintAssetsWithDefinition { + pub struct CanMintAssetWithDefinition { pub asset_definition_id: AssetDefinitionId, } } + token! { + #[derive(ValidateGrantRevoke, permission::derive_conversions::asset::Owner)] + #[validate(permission::asset::Owner)] + pub struct CanMintUserAsset { + pub asset_id: AssetId, + } + } + token! { #[derive(ValidateGrantRevoke, permission::derive_conversions::asset_definition::Owner)] #[validate(permission::asset_definition::Owner)] - pub struct CanTransferAssetsWithDefinition { + pub struct CanTransferAssetWithDefinition { pub asset_definition_id: AssetDefinitionId, } } diff --git a/tools/kagami/src/genesis.rs b/tools/kagami/src/genesis.rs index 6036e4723ab..a649c9bb756 100644 --- a/tools/kagami/src/genesis.rs +++ b/tools/kagami/src/genesis.rs @@ -127,21 +127,21 @@ pub fn generate_default(executor: ExecutorMode) -> color_eyre::Result color_eyre::Result color_eyre::Result(Result); -/// use iroha_torii_macro::generate_endpoints; +/// use iroha_torii_derive::generate_endpoints; /// /// // An example with arguments of both acceptable kinds. /// // This would generate endpoints accepting functions with diff --git a/torii/src/utils.rs b/torii/src/utils.rs index 805917872bb..eb7a5e30d7b 100644 --- a/torii/src/utils.rs +++ b/torii/src/utils.rs @@ -81,4 +81,4 @@ impl Reply for WarpResult { } } -iroha_torii_macro::generate_endpoints!(2, 3, 4, 5, 6, 7); +iroha_torii_derive::generate_endpoints!(2, 3, 4, 5, 6, 7);