diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 764343b..298d8c8 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -2,10 +2,12 @@ version: 2 updates: - package-ecosystem: "npm" directory: "/" + target-branch: "develop" schedule: interval: "weekly" - package-ecosystem: "pip" directory: "/scripts/" + target-branch: "develop" schedule: interval: "weekly" diff --git a/contracts/IMessageProxy.sol b/contracts/IMessageProxy.sol index 83ba0e4..03c0109 100644 --- a/contracts/IMessageProxy.sol +++ b/contracts/IMessageProxy.sol @@ -80,4 +80,5 @@ interface IMessageProxy { function getOutgoingMessagesCounter(string calldata targetSchainName) external view returns (uint256); function getIncomingMessagesCounter(string calldata fromSchainName) external view returns (uint256); function isConnectedChain(string memory schainName) external view returns (bool); + function getLastOutgoingMessageBlockId(string memory targetSchainName) external view returns (uint); } \ No newline at end of file diff --git a/contracts/mainnet/IMessageProxyForMainnet.sol b/contracts/mainnet/IMessageProxyForMainnet.sol index e82c20f..d90bdf6 100644 --- a/contracts/mainnet/IMessageProxyForMainnet.sol +++ b/contracts/mainnet/IMessageProxyForMainnet.sol @@ -30,6 +30,18 @@ interface IMessageProxyForMainnet is IMessageProxy { function setNewMessageGasCost(uint256 newMessageGasCost) external; function pause(string calldata schainName) external; function resume(string calldata schainName) external; + function addReimbursedContract(string memory schainName, address reimbursedContract) external; + function removeReimbursedContract(string memory schainName, address reimbursedContract) external; function messageInProgress() external view returns (bool); function isPaused(bytes32 schainHash) external view returns (bool); + function isReimbursedContract(bytes32 schainHash, address contractAddress) external view returns (bool); + function getReimbursedContractsLength(bytes32 schainHash) external view returns (uint256); + function getReimbursedContractsRange( + bytes32 schainHash, + uint256 from, + uint256 to + ) + external + view + returns (address[] memory contractsInRange); } \ No newline at end of file diff --git a/contracts/mainnet/ITwin.sol b/contracts/mainnet/ITwin.sol index 9366545..28b3802 100644 --- a/contracts/mainnet/ITwin.sol +++ b/contracts/mainnet/ITwin.sol @@ -27,4 +27,5 @@ interface ITwin is ISkaleManagerClient { function addSchainContract(string calldata schainName, address contractReceiver) external; function removeSchainContract(string calldata schainName) external; function hasSchainContract(string calldata schainName) external view returns (bool); + function getSchainContract(bytes32 schainHash) external view returns (address); } \ No newline at end of file diff --git a/contracts/schain/ICommunityLocker.sol b/contracts/schain/ICommunityLocker.sol index 0b50898..5fc14af 100644 --- a/contracts/schain/ICommunityLocker.sol +++ b/contracts/schain/ICommunityLocker.sol @@ -34,7 +34,7 @@ interface ICommunityLocker is IMessageReceiver { ITokenManagerLinker newTokenManagerLinker, address newCommunityPool ) external; - function checkAllowedToSendMessage(address receiver) external; - function setTimeLimitPerMessage(uint newTimeLimitPerMessage) external; + function checkAllowedToSendMessage(bytes32 chainHash, address receiver) external; + function setTimeLimitPerMessage(string memory chainName, uint newTimeLimitPerMessage) external; function setGasPrice(uint gasPrice, uint timestamp, IMessageProxyForSchain.Signature memory signature) external; } \ No newline at end of file diff --git a/contracts/schain/IMessageProxyForSchain.sol b/contracts/schain/IMessageProxyForSchain.sol index 143b2c2..4b10365 100644 --- a/contracts/schain/IMessageProxyForSchain.sol +++ b/contracts/schain/IMessageProxyForSchain.sol @@ -23,6 +23,7 @@ pragma solidity >=0.6.10 <0.9.0; import "../IMessageProxy.sol"; import "./IKeyStorage.sol"; +import "./ITokenManagerLinker.sol"; interface IMessageProxyForSchain is IMessageProxy { struct OutgoingMessageData { @@ -34,7 +35,9 @@ interface IMessageProxyForSchain is IMessageProxy { } function initialize(IKeyStorage blsKeyStorage, string memory schainName) external; + function setMinimumReceiverBalance(uint256 balance) external; + function topUpReceiverBalance(address payable receiver) external; + function messageInProgress() external view returns (bool); function verifyOutgoingMessageData(OutgoingMessageData memory message) external view returns (bool); function verifySignature(bytes32 hashedMessage, Signature memory signature) external view returns (bool); - function messageInProgress() external view returns (bool); } \ No newline at end of file diff --git a/contracts/schain/ITokenManagerLinker.sol b/contracts/schain/ITokenManagerLinker.sol index 040b675..1610b31 100644 --- a/contracts/schain/ITokenManagerLinker.sol +++ b/contracts/schain/ITokenManagerLinker.sol @@ -26,11 +26,11 @@ import "./ITokenManager.sol"; interface ITokenManagerLinker { + function connectSchain(string calldata schainName) external; + function disconnectSchain(string calldata schainName) external; function initialize(IMessageProxyForSchain newMessageProxyAddress, address linker) external; function registerTokenManager(ITokenManager newTokenManager) external; function removeTokenManager(ITokenManager tokenManagerAddress) external; - function connectSchain(string calldata schainName) external; - function disconnectSchain(string calldata schainName) external; - function hasTokenManager(ITokenManager tokenManager) external view returns (bool); function hasSchain(string calldata schainName) external view returns (bool connected); + function hasTokenManager(address tokenManager) external view returns (bool); } \ No newline at end of file diff --git a/package.json b/package.json index f8c0403..f9e2154 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@skalenetwork/ima-interfaces", - "version": "1.1.0", + "version": "2.0.0", "description": "Definitions of interfaces needed to integrate with IMA smart contracts", "main": "index.js", "repository": "git@github.com:skalenetwork/ima-interfaces.git",