From f0df0adb7b29627f7d3c6c06223b81428639d92c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marin=20Ver=C5=A1i=C4=87?= Date: Wed, 27 Mar 2024 21:13:56 +0300 Subject: [PATCH] [feature] #4390: include trigger id in trigger entrypoint MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marin Veršić --- .../src/lib.rs | 2 +- .../mint_rose_trigger/src/lib.rs | 9 ++- .../integration/triggers/by_call_trigger.rs | 7 ++ config/iroha_test_config.json | 4 ++ config/src/wsv.rs | 6 +- configs/peer/config.json | 4 ++ configs/peer/executor.wasm | Bin 521318 -> 528090 bytes configs/peer/genesis.json | 5 ++ configs/peer/stable/config.json | 4 ++ configs/peer/stable/genesis.json | 5 ++ core/src/smartcontracts/isi/mod.rs | 10 +++ core/src/smartcontracts/isi/triggers/mod.rs | 53 ++++++++++++++++ core/src/smartcontracts/isi/triggers/set.rs | 7 ++ core/src/smartcontracts/wasm.rs | 4 ++ data_model/src/events/data/events.rs | 9 ++- data_model/src/lib.rs | 1 + data_model/src/smart_contract.rs | 2 + data_model/src/visit.rs | 15 +++++ docs/source/references/schema.json | 34 ++++++++++ schema/gen/src/lib.rs | 1 + smart_contract/executor/derive/src/default.rs | 2 + smart_contract/executor/src/default.rs | 60 ++++++++++++++++-- smart_contract/executor/src/default/tokens.rs | 18 ++++++ .../trigger/derive/src/entrypoint.rs | 2 +- tools/kagami/src/genesis.rs | 1 + 25 files changed, 255 insertions(+), 10 deletions(-) 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 e5cf1a30c5a..b39baaca180 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 @@ -14,7 +14,7 @@ use lol_alloc::{FreeListAllocator, LockedAllocator}; static ALLOC: LockedAllocator = LockedAllocator::new(FreeListAllocator::new()); #[iroha_trigger::main] -fn main(_owner: AccountId, _event: Event) { +fn main(_id: TriggerId, _owner: AccountId, _event: Event) { iroha_trigger::log::info!("Executing trigger"); let accounts = FindAllAccounts.execute().dbg_unwrap(); let limits = MetadataLimits::new(256, 256); diff --git a/client/tests/integration/smartcontracts/mint_rose_trigger/src/lib.rs b/client/tests/integration/smartcontracts/mint_rose_trigger/src/lib.rs index 7dd2d5c7c0d..e4dae2303e9 100644 --- a/client/tests/integration/smartcontracts/mint_rose_trigger/src/lib.rs +++ b/client/tests/integration/smartcontracts/mint_rose_trigger/src/lib.rs @@ -15,12 +15,17 @@ static ALLOC: LockedAllocator = LockedAllocator::new(FreeList /// Mint 1 rose for owner #[iroha_trigger::main] -fn main(owner: AccountId, _event: Event) { +fn main(id: TriggerId, owner: AccountId, _event: Event) { let rose_definition_id = AssetDefinitionId::from_str("rose#wonderland") .dbg_expect("Failed to parse `rose#wonderland` asset definition id"); let rose_id = AssetId::new(rose_definition_id, owner); - MintExpr::new(1_u32, rose_id) + let val: Value = FindTriggerKeyValueByIdAndKey::new(id, Name::from_str("VAL").unwrap()) + .execute() + .dbg_unwrap() + .into(); + + MintExpr::new(val, rose_id) .execute() .dbg_expect("Failed to mint rose"); } diff --git a/client/tests/integration/triggers/by_call_trigger.rs b/client/tests/integration/triggers/by_call_trigger.rs index 406d127a3ea..5b4bbed48a7 100644 --- a/client/tests/integration/triggers/by_call_trigger.rs +++ b/client/tests/integration/triggers/by_call_trigger.rs @@ -377,6 +377,13 @@ fn trigger_in_genesis_using_base64() -> Result<()> { let prev_value = get_asset_value(&mut test_client, asset_id.clone())?; // Executing trigger + test_client + .submit_blocking(SetKeyValueExpr::new( + trigger_id.clone(), + Name::from_str("VAL")?, + Value::from(1_u32), + )) + .unwrap(); let call_trigger = ExecuteTriggerExpr::new(trigger_id); test_client.submit_blocking(call_trigger)?; diff --git a/config/iroha_test_config.json b/config/iroha_test_config.json index 3c55e840892..fac3a4a2bb7 100644 --- a/config/iroha_test_config.json +++ b/config/iroha_test_config.json @@ -93,6 +93,10 @@ "max_len": 1048576, "max_entry_byte_size": 4096 }, + "TRIGGER_METADATA_LIMITS": { + "max_len": 1048576, + "max_entry_byte_size": 4096 + }, "IDENT_LENGTH_LIMITS": { "min": 1, "max": 128 diff --git a/config/src/wsv.rs b/config/src/wsv.rs index aacc58734be..7fbb1893928 100644 --- a/config/src/wsv.rs +++ b/config/src/wsv.rs @@ -38,6 +38,8 @@ pub struct Configuration { pub account_metadata_limits: MetadataLimits, /// [`MetadataLimits`] of any domain metadata. pub domain_metadata_limits: MetadataLimits, + /// [`MetadataLimits`] of any trigger metadata. + pub trigger_metadata_limits: MetadataLimits, /// [`LengthLimits`] for the number of chars in identifiers that can be stored in the WSV. pub ident_length_limits: LengthLimits, /// Limits that all transactions need to obey, in terms of size @@ -55,6 +57,7 @@ impl Default for ConfigurationProxy { asset_definition_metadata_limits: Some(DEFAULT_METADATA_LIMITS), account_metadata_limits: Some(DEFAULT_METADATA_LIMITS), domain_metadata_limits: Some(DEFAULT_METADATA_LIMITS), + trigger_metadata_limits: Some(DEFAULT_METADATA_LIMITS), ident_length_limits: Some(DEFAULT_IDENT_LENGTH_LIMITS), transaction_limits: Some(DEFAULT_TRANSACTION_LIMITS), wasm_runtime_config: Some(wasm::ConfigurationProxy::default()), @@ -75,12 +78,13 @@ pub mod tests { asset_definition_metadata_limits in prop::option::of(Just(DEFAULT_METADATA_LIMITS)), account_metadata_limits in prop::option::of(Just(DEFAULT_METADATA_LIMITS)), domain_metadata_limits in prop::option::of(Just(DEFAULT_METADATA_LIMITS)), + trigger_metadata_limits in prop::option::of(Just(DEFAULT_METADATA_LIMITS)), ident_length_limits in prop::option::of(Just(DEFAULT_IDENT_LENGTH_LIMITS)), transaction_limits in prop::option::of(Just(DEFAULT_TRANSACTION_LIMITS)), wasm_runtime_config in prop::option::of(Just(wasm::ConfigurationProxy::default())), ) -> ConfigurationProxy { - ConfigurationProxy { asset_metadata_limits, asset_definition_metadata_limits, account_metadata_limits, domain_metadata_limits, ident_length_limits, transaction_limits, wasm_runtime_config } + ConfigurationProxy { asset_metadata_limits, asset_definition_metadata_limits, account_metadata_limits, domain_metadata_limits, trigger_metadata_limits, ident_length_limits, transaction_limits, wasm_runtime_config } } } } diff --git a/configs/peer/config.json b/configs/peer/config.json index ef36a9f525c..0658faa8d9c 100644 --- a/configs/peer/config.json +++ b/configs/peer/config.json @@ -67,6 +67,10 @@ "max_len": 1048576, "max_entry_byte_size": 4096 }, + "TRIGGER_METADATA_LIMITS": { + "max_len": 1048576, + "max_entry_byte_size": 4096 + }, "IDENT_LENGTH_LIMITS": { "min": 1, "max": 128 diff --git a/configs/peer/executor.wasm b/configs/peer/executor.wasm index 294cd2ef7f96dcc765dec2e6b6e0c2a8b8873f68..d568d43a9e48a0deea5af60f8c0ba3ed729fa642 100644 GIT binary patch delta 184670 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

}9z8PM&BA~W@;05)ruKEKCp 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%0Acd$ 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 delta 177360 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 Sk_}f1mvwqRztSpfz<&V#Ja*;) diff --git a/configs/peer/genesis.json b/configs/peer/genesis.json index 2ca5d0365ed..43b62446ac8 100644 --- a/configs/peer/genesis.json +++ b/configs/peer/genesis.json @@ -157,6 +157,11 @@ "Parameter": "?WSVDomainMetadataLimits=1048576,4096_ML" } }, + { + "NewParameter": { + "Parameter": "?WSVTriggerMetadataLimits=1048576,4096_ML" + } + }, { "NewParameter": { "Parameter": "?WSVIdentLengthLimits=1,128_LL" diff --git a/configs/peer/stable/config.json b/configs/peer/stable/config.json index ef36a9f525c..0658faa8d9c 100644 --- a/configs/peer/stable/config.json +++ b/configs/peer/stable/config.json @@ -67,6 +67,10 @@ "max_len": 1048576, "max_entry_byte_size": 4096 }, + "TRIGGER_METADATA_LIMITS": { + "max_len": 1048576, + "max_entry_byte_size": 4096 + }, "IDENT_LENGTH_LIMITS": { "min": 1, "max": 128 diff --git a/configs/peer/stable/genesis.json b/configs/peer/stable/genesis.json index 2ca5d0365ed..43b62446ac8 100644 --- a/configs/peer/stable/genesis.json +++ b/configs/peer/stable/genesis.json @@ -157,6 +157,11 @@ "Parameter": "?WSVDomainMetadataLimits=1048576,4096_ML" } }, + { + "NewParameter": { + "Parameter": "?WSVTriggerMetadataLimits=1048576,4096_ML" + } + }, { "NewParameter": { "Parameter": "?WSVIdentLengthLimits=1,128_LL" diff --git a/core/src/smartcontracts/isi/mod.rs b/core/src/smartcontracts/isi/mod.rs index ea009e6d575..859e32084bf 100644 --- a/core/src/smartcontracts/isi/mod.rs +++ b/core/src/smartcontracts/isi/mod.rs @@ -310,6 +310,12 @@ impl Execute for SetKeyValueExpr { value, } .execute(authority, wsv), + IdBox::TriggerId(object_id) => SetKeyValue::> { + object_id, + key, + value, + } + .execute(authority, wsv), _ => Err(Error::Evaluate(InstructionType::SetKeyValue.into())), } } @@ -332,6 +338,10 @@ impl Execute for RemoveKeyValueExpr { IdBox::DomainId(object_id) => { RemoveKeyValue:: { object_id, key }.execute(authority, wsv) } + IdBox::TriggerId(object_id) => { + RemoveKeyValue::> { object_id, key } + .execute(authority, wsv) + } _ => Err(Error::Evaluate(InstructionType::RemoveKeyValue.into())), } } diff --git a/core/src/smartcontracts/isi/triggers/mod.rs b/core/src/smartcontracts/isi/triggers/mod.rs index 7c814b6fe47..0d50c39c356 100644 --- a/core/src/smartcontracts/isi/triggers/mod.rs +++ b/core/src/smartcontracts/isi/triggers/mod.rs @@ -154,6 +154,59 @@ pub mod isi { } } + impl Execute for SetKeyValue> { + #[metrics(+"set_trigger_key_value")] + fn execute(self, _authority: &AccountId, wsv: &mut WorldStateView) -> Result<(), Error> { + let trigger_id = self.object_id; + + let trigger_metadata_limits = wsv.config.account_metadata_limits; + wsv.world + .triggers + .inspect_by_id_mut(&trigger_id, |action| { + action.metadata_mut().insert_with_limits( + self.key.clone(), + self.value.clone(), + trigger_metadata_limits, + ) + }) + .ok_or(FindError::Trigger(trigger_id.clone()))??; + + wsv.emit_events(Some(TriggerEvent::MetadataInserted(MetadataChanged { + target_id: trigger_id, + key: self.key, + value: Box::new(self.value), + }))); + + Ok(()) + } + } + + impl Execute for RemoveKeyValue> { + #[metrics(+"remove_trigger_key_value")] + fn execute(self, _authority: &AccountId, wsv: &mut WorldStateView) -> Result<(), Error> { + let trigger_id = self.object_id; + + let value = wsv + .world + .triggers + .inspect_by_id_mut(&trigger_id, |action| { + action + .metadata_mut() + .remove(&self.key) + .ok_or_else(|| FindError::MetadataKey(self.key.clone())) + }) + .ok_or(FindError::Trigger(trigger_id.clone()))??; + + wsv.emit_events(Some(TriggerEvent::MetadataRemoved(MetadataChanged { + target_id: trigger_id, + key: self.key, + value: Box::new(value), + }))); + + Ok(()) + } + } + impl Execute for ExecuteTriggerExpr { #[metrics(+"execute_trigger")] fn execute(self, authority: &AccountId, wsv: &mut WorldStateView) -> Result<(), Error> { diff --git a/core/src/smartcontracts/isi/triggers/set.rs b/core/src/smartcontracts/isi/triggers/set.rs index 57c1942e480..fb6deff9e04 100644 --- a/core/src/smartcontracts/isi/triggers/set.rs +++ b/core/src/smartcontracts/isi/triggers/set.rs @@ -84,6 +84,9 @@ pub trait LoadedActionTrait { /// Get action metadata fn metadata(&self) -> &Metadata; + /// Get action metadata + fn metadata_mut(&mut self) -> &mut Metadata; + /// Check if action is mintable. fn mintable(&self) -> bool; @@ -115,6 +118,10 @@ impl + Clone> LoadedActionTrait for Loaded &self.metadata } + fn metadata_mut(&mut self) -> &mut Metadata { + &mut self.metadata + } + fn mintable(&self) -> bool { self.filter.mintable() } diff --git a/core/src/smartcontracts/wasm.rs b/core/src/smartcontracts/wasm.rs index 03a9742aaa1..0717a156c01 100644 --- a/core/src/smartcontracts/wasm.rs +++ b/core/src/smartcontracts/wasm.rs @@ -428,6 +428,8 @@ pub mod state { /// Trigger execution state pub struct Trigger<'wrld> { pub(super) common: Common<'wrld>, + /// Id of this trigger + pub(in super::super) id: TriggerId, /// Event which activated this trigger pub(super) triggering_event: Event, } @@ -923,6 +925,7 @@ impl<'wrld> Runtime> { let span = wasm_log_span!("Trigger execution", %id, %authority); let state = state::Trigger { common: state::Common::new(wsv, authority, self.config, span), + id: id.clone(), triggering_event: event, }; @@ -941,6 +944,7 @@ impl<'wrld> Runtime> { #[codec::wrap] fn get_trigger_payload(state: &state::Trigger) -> payloads::Trigger { payloads::Trigger { + id: state.id.clone(), owner: state.authority().clone(), event: state.triggering_event.clone(), } diff --git a/data_model/src/events/data/events.rs b/data_model/src/events/data/events.rs index 8bf07a8e49b..fe2eb66bb03 100644 --- a/data_model/src/events/data/events.rs +++ b/data_model/src/events/data/events.rs @@ -501,8 +501,11 @@ mod trigger { pub use self::model::*; use super::*; + // type alias required by `Filter` macro + type TriggerMetadataChanged = MetadataChanged; + data_event! { - #[has_origin(origin = Trigger)] + #[has_origin(origin = Trigger)] pub enum TriggerEvent { Created(TriggerId), Deleted(TriggerId), @@ -510,6 +513,10 @@ mod trigger { Extended(TriggerNumberOfExecutionsChanged), #[has_origin(number_of_executions_changed => &number_of_executions_changed.trigger_id)] Shortened(TriggerNumberOfExecutionsChanged), + #[has_origin(metadata_changed => &metadata_changed.target_id)] + MetadataInserted(TriggerMetadataChanged), + #[has_origin(metadata_changed => &metadata_changed.target_id)] + MetadataRemoved(TriggerMetadataChanged), } } diff --git a/data_model/src/lib.rs b/data_model/src/lib.rs index 5be4f6bc159..7c61e86d266 100644 --- a/data_model/src/lib.rs +++ b/data_model/src/lib.rs @@ -238,6 +238,7 @@ pub mod parameter { pub const WSV_ASSET_DEFINITION_METADATA_LIMITS: &str = "WSVAssetDefinitionMetadataLimits"; pub const WSV_ACCOUNT_METADATA_LIMITS: &str = "WSVAccountMetadataLimits"; pub const WSV_DOMAIN_METADATA_LIMITS: &str = "WSVDomainMetadataLimits"; + pub const WSV_TRIGGER_METADATA_LIMITS: &str = "WSVTriggerMetadataLimits"; pub const WSV_IDENT_LENGTH_LIMITS: &str = "WSVIdentLengthLimits"; pub const WASM_FUEL_LIMIT: &str = "WASMFuelLimit"; pub const WASM_MAX_MEMORY: &str = "WASMMaxMemory"; diff --git a/data_model/src/smart_contract.rs b/data_model/src/smart_contract.rs index f159fa69531..0bbb807b0d5 100644 --- a/data_model/src/smart_contract.rs +++ b/data_model/src/smart_contract.rs @@ -17,6 +17,8 @@ pub mod payloads { /// Payload for trigger entrypoint #[derive(Debug, Clone, Encode, Decode)] pub struct Trigger { + /// Id of this trigger + pub id: TriggerId, /// Trigger owner who registered the trigger pub owner: AccountId, /// Event which triggered the execution diff --git a/data_model/src/visit.rs b/data_model/src/visit.rs index 62a33f328c8..e8a48e1da0b 100644 --- a/data_model/src/visit.rs +++ b/data_model/src/visit.rs @@ -147,12 +147,14 @@ pub trait Visit: ExpressionEvaluator { visit_set_account_key_value(SetKeyValue), visit_set_asset_definition_key_value(SetKeyValue), visit_set_asset_key_value(SetKeyValue), + visit_set_trigger_key_value(SetKeyValue>), // Visit RemoveKeyValueExpr visit_remove_domain_key_value(RemoveKeyValue), visit_remove_account_key_value(RemoveKeyValue), visit_remove_asset_definition_key_value(RemoveKeyValue), visit_remove_asset_key_value(RemoveKeyValue), + visit_remove_trigger_key_value(RemoveKeyValue>), // Visit GrantExpr visit_grant_account_permission(Grant), @@ -575,6 +577,14 @@ pub fn visit_set_key_value( value, }, ), + IdBox::TriggerId(object_id) => visitor.visit_set_trigger_key_value( + authority, + SetKeyValue { + object_id, + key, + value, + }, + ), _ => visitor.visit_unsupported(authority, isi), } } @@ -599,6 +609,9 @@ pub fn visit_remove_key_value( IdBox::DomainId(object_id) => { visitor.visit_remove_domain_key_value(authority, RemoveKeyValue { object_id, key }); } + IdBox::TriggerId(object_id) => { + visitor.visit_remove_trigger_key_value(authority, RemoveKeyValue { object_id, key }); + } _ => visitor.visit_unsupported(authority, isi), } } @@ -710,6 +723,8 @@ leaf_visitors! { visit_transfer_asset(Transfer), visit_set_asset_key_value(SetKeyValue), visit_remove_asset_key_value(RemoveKeyValue), + visit_set_trigger_key_value(SetKeyValue>), + visit_remove_trigger_key_value(RemoveKeyValue>), visit_register_asset_definition(Register), visit_unregister_asset_definition(Unregister), visit_transfer_asset_definition(Transfer), diff --git a/docs/source/references/schema.json b/docs/source/references/schema.json index 17d8eb33db2..9c66e941058 100644 --- a/docs/source/references/schema.json +++ b/docs/source/references/schema.json @@ -2833,6 +2833,22 @@ } ] }, + "MetadataChanged": { + "Struct": [ + { + "name": "target_id", + "type": "TriggerId" + }, + { + "name": "key", + "type": "Name" + }, + { + "name": "value", + "type": "Value" + } + ] + }, "MetadataError": { "Enum": [ { @@ -4418,6 +4434,16 @@ "tag": "Shortened", "discriminant": 3, "type": "TriggerNumberOfExecutionsChanged" + }, + { + "tag": "MetadataInserted", + "discriminant": 4, + "type": "MetadataChanged" + }, + { + "tag": "MetadataRemoved", + "discriminant": 5, + "type": "MetadataChanged" } ] }, @@ -4438,6 +4464,14 @@ { "tag": "ByShortened", "discriminant": 3 + }, + { + "tag": "ByMetadataInserted", + "discriminant": 4 + }, + { + "tag": "ByMetadataRemoved", + "discriminant": 5 } ] }, diff --git a/schema/gen/src/lib.rs b/schema/gen/src/lib.rs index ade793e5963..7ef9e9ec6ff 100644 --- a/schema/gen/src/lib.rs +++ b/schema/gen/src/lib.rs @@ -246,6 +246,7 @@ types!( MetadataChanged, MetadataChanged, MetadataChanged, + MetadataChanged, MetadataLimits, MintExpr, Mintable, diff --git a/smart_contract/executor/derive/src/default.rs b/smart_contract/executor/derive/src/default.rs index 2e458f86992..1b0262efa3b 100644 --- a/smart_contract/executor/derive/src/default.rs +++ b/smart_contract/executor/derive/src/default.rs @@ -138,6 +138,8 @@ pub fn impl_derive_visit(emitter: &mut Emitter, input: &syn2::DeriveInput) -> To "fn visit_transfer_asset(operation: Transfer)", "fn visit_set_asset_key_value(operation: SetKeyValue)", "fn visit_remove_asset_key_value(operation: RemoveKeyValue)", + "fn visit_set_trigger_key_value(operation: SetKeyValue>)", + "fn visit_remove_trigger_key_value(operation: RemoveKeyValue>)", "fn visit_unregister_asset_definition(operation: Unregister)", "fn visit_transfer_asset_definition(operation: Transfer)", "fn visit_set_asset_definition_key_value(operation: SetKeyValue)", diff --git a/smart_contract/executor/src/default.rs b/smart_contract/executor/src/default.rs index 603db7b670c..f0f1df28a2a 100644 --- a/smart_contract/executor/src/default.rs +++ b/smart_contract/executor/src/default.rs @@ -32,7 +32,7 @@ pub use role::{ }; pub use trigger::{ visit_burn_trigger_repetitions, visit_execute_trigger, visit_mint_trigger_repetitions, - visit_unregister_trigger, + visit_remove_trigger_key_value, visit_set_trigger_key_value, visit_unregister_trigger, }; use crate::{permission, permission::Token as _, prelude::*}; @@ -312,9 +312,7 @@ pub mod peer { pub mod domain { use iroha_smart_contract::data_model::{domain::DomainId, permission::PermissionToken}; - use permission::{ - accounts_permission_tokens, domain::is_domain_owner, - }; + use permission::{accounts_permission_tokens, domain::is_domain_owner}; use tokens::AnyPermissionToken; use super::*; @@ -1448,6 +1446,60 @@ pub mod trigger { deny!(executor, "Can't execute trigger owned by another account"); } + pub fn visit_set_trigger_key_value( + executor: &mut V, + authority: &AccountId, + isi: SetKeyValue>, + ) { + let trigger_id = isi.object_id; + + if is_genesis(executor) { + pass!(executor); + } + match is_trigger_owner(&trigger_id, authority) { + Err(err) => deny!(executor, err), + Ok(true) => pass!(executor), + Ok(false) => {} + } + let can_set_key_value_in_user_trigger_token = + tokens::trigger::CanSetKeyValueInTrigger { trigger_id }; + if can_set_key_value_in_user_trigger_token.is_owned_by(authority) { + pass!(executor); + } + + deny!( + executor, + "Can't set value to the metadata of another trigger" + ); + } + + pub fn visit_remove_trigger_key_value( + executor: &mut V, + authority: &AccountId, + isi: RemoveKeyValue>, + ) { + let trigger_id = isi.object_id; + + if is_genesis(executor) { + pass!(executor); + } + match is_trigger_owner(&trigger_id, authority) { + Err(err) => deny!(executor, err), + Ok(true) => pass!(executor), + Ok(false) => {} + } + let can_remove_key_value_in_trigger_token = + tokens::trigger::CanRemoveKeyValueInTrigger { trigger_id }; + if can_remove_key_value_in_trigger_token.is_owned_by(authority) { + pass!(executor); + } + + deny!( + executor, + "Can't remove value from the metadata of another trigger" + ); + } + fn is_token_trigger_associated(permission: &PermissionToken, trigger_id: &TriggerId) -> bool { let Ok(permission) = AnyPermissionToken::try_from(permission.clone()) else { return false; diff --git a/smart_contract/executor/src/default/tokens.rs b/smart_contract/executor/src/default/tokens.rs index a3a9645b204..bc486ada1ef 100644 --- a/smart_contract/executor/src/default/tokens.rs +++ b/smart_contract/executor/src/default/tokens.rs @@ -473,11 +473,29 @@ pub mod trigger { } } + token! { + #[derive(ValidateGrantRevoke)] + #[validate(permission::trigger::Owner)] + pub struct CanSetKeyValueInTrigger { + pub trigger_id: TriggerId, + } + } + + token! { + #[derive(ValidateGrantRevoke)] + #[validate(permission::trigger::Owner)] + pub struct CanRemoveKeyValueInTrigger { + pub trigger_id: TriggerId, + } + } + impl_froms!( CanExecuteUserTrigger, CanUnregisterUserTrigger, CanMintUserTrigger, CanBurnUserTrigger, + CanSetKeyValueInTrigger, + CanRemoveKeyValueInTrigger, ); } diff --git a/smart_contract/trigger/derive/src/entrypoint.rs b/smart_contract/trigger/derive/src/entrypoint.rs index 71387f19be9..6f5c07b1f4a 100644 --- a/smart_contract/trigger/derive/src/entrypoint.rs +++ b/smart_contract/trigger/derive/src/entrypoint.rs @@ -40,7 +40,7 @@ pub fn impl_entrypoint(_attr: TokenStream, item: TokenStream) -> TokenStream { #[doc(hidden)] unsafe extern "C" fn #main_fn_name() { let payload = ::iroha_trigger::get_trigger_payload(); - #fn_name(payload.owner, payload.event) + #fn_name(payload.id, payload.owner, payload.event) } // NOTE: Host objects are always passed by value to wasm diff --git a/tools/kagami/src/genesis.rs b/tools/kagami/src/genesis.rs index 41ff4c71237..ecefad84fe2 100644 --- a/tools/kagami/src/genesis.rs +++ b/tools/kagami/src/genesis.rs @@ -186,6 +186,7 @@ pub fn generate_default(executor: ExecutorMode) -> color_eyre::Result