Skip to content

Commit

Permalink
Add IExecutor
Browse files Browse the repository at this point in the history
  • Loading branch information
DimaStebaev committed Dec 10, 2024
1 parent d0494cc commit 64c5dd7
Show file tree
Hide file tree
Showing 3 changed files with 75 additions and 3 deletions.
36 changes: 36 additions & 0 deletions contracts/schain/ExecutionLayer/IActionExecutor.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
// SPDX-License-Identifier: AGPL-3.0-only

/**
* IActionExecutor - SKALE Interchain Messaging Agent
* Copyright (C) 2024-Present SKALE Labs
* @author Dmytro Stebaiev
*
* SKALE IMA is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* SKALE IMA is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with SKALE IMA. If not, see <https://www.gnu.org/licenses/>.
*/

pragma solidity >=0.8.19 <0.9.0;

struct TokenInfo {
address token;
uint256 number;
}

interface IActionExecutor {
function execute(
TokenInfo[] memory inputTokens,
bytes memory arguments
)
external
returns (TokenInfo[] memory outputTokens);
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@

pragma solidity >=0.8.19 <0.9.0;

import {IMessageReceiver} from "../IMessageReceiver.sol";
import {IMessageProxyForSchain} from "./IMessageProxyForSchain.sol";
import {SchainHash} from "../DomainTypes.sol";
import {IMessageReceiver} from "../../IMessageReceiver.sol";
import {IMessageProxyForSchain} from "../IMessageProxyForSchain.sol";
import {SchainHash} from "../../DomainTypes.sol";


interface IExecutionManager is IMessageReceiver {
Expand Down
36 changes: 36 additions & 0 deletions contracts/schain/ExecutionLayer/IExecutor.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
// SPDX-License-Identifier: AGPL-3.0-only

/**
* IExecutor - SKALE Interchain Messaging Agent
* Copyright (C) 2024-Present SKALE Labs
* @author Dmytro Stebaiev
*
* SKALE IMA is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* SKALE IMA is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with SKALE IMA. If not, see <https://www.gnu.org/licenses/>.
*/

// cspell::words func-name-mixedcase

pragma solidity >=0.8.19 <0.9.0;

import {IActionExecutor} from "./IActionExecutor.sol";

type ExecutorId is bytes32;

interface IExecutor is IActionExecutor {
// ID will be public constant variable but not function
// slither-disable-start naming-convention
// solhint-disable-next-line func-name-mixedcase
function ID() external pure returns (ExecutorId executorId);
// slither-disable-end naming-convention
}

0 comments on commit 64c5dd7

Please sign in to comment.