ProgramContext
_Context of DSL code
One of the core contracts of the project. It provides additional information about program state and point counter (pc)._
ANYONE
address ANYONE
appAddr
address appAddr
stack
contract Stack stack
program
bytes program
pc
uint256 pc
nextpc
uint256 nextpc
msgSender
address msgSender
msgValue
uint256 msgValue
isStructVar
mapping(string => bool) isStructVar
structParams
mapping(bytes4 => mapping(bytes4 => bytes4)) structParams
labelPos
mapping(string => uint256) labelPos
forLoopIterationsRemaining
uint256 forLoopIterationsRemaining
nonZeroAddress
modifier nonZeroAddress(address _addr)
onlyApp
modifier onlyApp()
constructor
constructor() public
setProgram
function setProgram(bytes _data) public
Sets the final version of the program.
Parameters
| Name | Type | Description |
|---|---|---|
| _data | bytes | is the bytecode of the full program |
programSlice
function programSlice(bytes _payload, uint256 _index, uint256 _step) public pure returns (bytes)
Returns the slice of the program using a step value
Parameters
| Name | Type | Description |
|---|---|---|
| _payload | bytes | is bytecode of program that will be sliced |
| _index | uint256 | is a last byte of the slice |
| _step | uint256 | is the step of the slice |
Return Values
| Name | Type | Description |
|---|---|---|
| [0] | bytes | the slice of provided _payload bytecode |
programAt
function programAt(uint256 _start, uint256 _size) external view returns (bytes)
currentProgram
function currentProgram() public view returns (bytes)
Returns the slice of the current program using the index and the step values
Return Values
| Name | Type | Description |
|---|---|---|
| [0] | bytes | the slice of stored bytecode in the program variable |
setPc
function setPc(uint256 _pc) public
Sets the current point counter for the program
Parameters
| Name | Type | Description |
|---|---|---|
| _pc | uint256 | is the new value of the pc |
setNextPc
function setNextPc(uint256 _nextpc) public
Sets the next point counter for the program
Parameters
| Name | Type | Description |
|---|---|---|
| _nextpc | uint256 | is the new value of the nextpc |
incPc
function incPc(uint256 _val) public
Increases the current point counter with the provided value and saves the sum
Parameters
| Name | Type | Description |
|---|---|---|
| _val | uint256 | is the new value that is used for summing it and the current pc value |
setMsgSender
function setMsgSender(address _msgSender) public
Sets/Updates msgSender by the provided value
Parameters
| Name | Type | Description |
|---|---|---|
| _msgSender | address | is the new msgSender |
setMsgValue
function setMsgValue(uint256 _msgValue) public
Sets/Updates msgValue by the provided value
Parameters
| Name | Type | Description |
|---|---|---|
| _msgValue | uint256 | is the new msgValue |
setStructVars
function setStructVars(string _structName, string _varName, string _fullName) public
Sets the full name depends on structure variables
Parameters
| Name | Type | Description |
|---|---|---|
| _structName | string | is the name of the structure |
| _varName | string | is the name of the structure variable |
| _fullName | string | is the full string of the name of the structure and its variables |
setForLoopIterationsRemaining
function setForLoopIterationsRemaining(uint256 _forLoopIterationsRemaining) external
Sets the number of iterations for the for-loop that is being executed
Parameters
| Name | Type | Description |
|---|---|---|
| _forLoopIterationsRemaining | uint256 | The number of iterations of the loop |
setLabelPos
function setLabelPos(string _name, uint256 _value) external