You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: contracts/core/02-client/ILightClient.sol
+2Lines changed: 2 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -78,6 +78,7 @@ interface ILightClient {
78
78
/**
79
79
* @dev verifyMembership is a generic proof verification method which verifies a proof of the existence of a value at a given CommitmentPath at the specified height.
80
80
* The caller is expected to construct the full CommitmentPath from a CommitmentPrefix and a standardized path (as defined in ICS 24).
81
+
* This function should not perform `call` to the IBC contract. However, `staticcall` is permitted.
81
82
*/
82
83
function verifyMembership(
83
84
stringcalldataclientId,
@@ -93,6 +94,7 @@ interface ILightClient {
93
94
/**
94
95
* @dev verifyNonMembership is a generic proof verification method which verifies the absence of a given CommitmentPath at a specified height.
95
96
* The caller is expected to construct the full CommitmentPath from a CommitmentPrefix and a standardized path (as defined in ICS 24).
97
+
* This function should not perform `call` to the IBC contract. However, `staticcall` is permitted.
Copy file name to clipboardExpand all lines: contracts/core/24-host/IIBCHostConfigurator.sol
+8Lines changed: 8 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -7,16 +7,24 @@ import {IIBCModule} from "../26-router/IIBCModule.sol";
7
7
interfaceIIBCHostConfigurator {
8
8
/**
9
9
* @dev setExpectedTimePerBlock sets expected time per block.
10
+
* Typically this function should be called by an authority like an IBC contract owner or govenance.
10
11
*/
11
12
function setExpectedTimePerBlock(uint64expectedTimePerBlock_) external;
12
13
13
14
/**
14
15
* @dev registerClient registers a new client type into the client registry
16
+
* Typically this function should be called by an authority like an IBC contract owner or govenance.
17
+
* The authority should verify the light client contract is a valid implementation as follows:
18
+
* - The contract implements ILightClient
19
+
* - To avoid reentrancy attack, the contract never performs `call` to the IBC contract directly or indirectly in the `verifyMembership` and the `verifyNonMembership`
15
20
*/
16
21
function registerClient(stringcalldataclientType, ILightClient client) external;
17
22
18
23
/**
19
24
* @dev bindPort binds to an unallocated port, failing if the port has already been allocated.
25
+
* Typically this function should be called by an authority like an IBC contract owner or govenance.
26
+
* The authority should verify the light client contract is a valid implementation as follows:
27
+
* - The contract implements IIBCModule
20
28
*/
21
29
function bindPort(stringcalldataportId, IIBCModule moduleAddress) external;
0 commit comments