Skip to main content

SmarterContract

SmarterContract.sol is designed to be used as inheritence. It stores a callbreaker, and can make some assertions about callbreaker state. It be used with or without importing CallBreaker.

Key Features:

  • Interaction with CallBreaker: Stores an instance of CallBreaker and interacts with its functions.
  • Transaction Order Management: Prevents frontrunning and backrunning through modifiers.
  • Conditional Execution: Allows assertions about future calls.

How to Use in a Contract

To use the CallBreaker contract, inherit from it:

import "path-to/SmarterContract.sol";

contract YourContract is SmarterContract {
constructor(address _callbreaker) SmarterContract(_callbreaker) {
}
}

Functions

getCurrentExecutingPair

Returns the call index, CallObject, and ReturnObject of the currently executing call.

Returns

NameType
CallObjectCallObject (memory)
ReturnObjectReturnObject (memory)

frontrunBlocker

Prevents frontrunning by ensuring the currently executing call is the first in the list.

Custom Reverts

IllegalFrontrun(): If there is a frontrunning call.

backrunBlocker

Prevents backrunning by ensuring the currently executing call is the first in the reverse list.

Custom Reverts

IllegalBackrun(): If there is a backrunning call.

soloExecuteBlocker

Prevents both frontrunning and backrunning.

assertFutureCallTo

Ensures that there is a future call after the current call.

Parameters

NameType
callObjCallObject (memory)
hintdex (optional)uint256

Custom Reverts

FutureCallExpected(): If no future call is found. CallMismatch(): If the CallObject at the hintdex does not match.

assertNextCallTo

Ensures that the next call is to the specified CallObject.

Parameters

NameType
callObjCallObject (memory)

Custom Reverts

CallMismatch(): If the CallObject at the next index does not match.

Events

EnterPortal

Emitted when the enterPortal function is called.

Parameters

NameType
callObjCallObject
returnvalueReturnObject
indexuint256

Tip

Emitted when a tip is received.

Parameters

NameType
fromaddress (indexed)
toaddress (indexed)
amountuint256

VerifyStxn

Emitted when the verifyStxn function is called, indicating the completion of the verification process.

Modifiers

ensureTurnerOpen

This checks if the portal is open at the CallBreaker contract.

noFrontrun

Prevents frontrunning by using frontrunBlocker.

noBackrun

Prevents backrunning by using backrunBlocker.