Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions standard/ERCs/erc-6900.md
Original file line number Diff line number Diff line change
Expand Up @@ -186,10 +186,9 @@ This prevents accidental misconfiguration or misuse of plugins (both installed a

```solidity
interface IPluginExecutor {
/// @notice Execute a call from a plugin to another plugin, via an execution function installed on the account.
/// @dev Plugins are not allowed to call native functions on the account. Permissions must be granted to the
/// calling plugin for the call to go through.
/// @param data The calldata to send to the plugin.
/// @notice Execute a call from a plugin through the account.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If executeFromPluginExternal is responsible for non-plugin address, can this method call into non-plugin address (e.g. wallet native functions)?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, we don't explicitly prohibit this in the standard (hence the correction made here from the erroneous change from prior PRs: #32, #36). The reference implementation has chosen to disallow calls to native functions, but it can be done. Perhaps worthwhile to define in the standard in a future update though, since it impacts how plugins are written.

/// @dev Permissions must be granted to the calling plugin for the call to go through.
/// @param data The calldata to send to the account.
/// @return The return data from the call.
function executeFromPlugin(bytes calldata data) external payable returns (bytes memory);

Expand Down