Skip to content

Commit ba9c346

Browse files
authored
Merge pull request #71 from ewasm/byzantium
EEI: add Byzantium opcodes
2 parents 7392204 + a4ea2ca commit ba9c346

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

eth_interface.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,25 @@ persisting the current values for sender and value.
151151

152152
`result` **i32** Returns 1 or 0 depending on if the VM trapped on the message or not
153153

154+
## callStatic
155+
156+
Sends a message with arbitrary data to a given address path, but disallow state
157+
modifications. This includes `log`, `create`, `selfdestruct` and `call` with a non-zero
158+
value.
159+
160+
**Parameters**
161+
162+
- `gas` **i64** the gas limit
163+
- `addressOffset` **i32ptr** the memory offset to load the address from (`address`)
164+
- `dataOffset` **i32ptr** the memory offset to load data from (`bytes`)
165+
- `dataLength` **i32** the length of data
166+
- `resultOffset` **i32ptr** the memory offset to store the result data at (`bytes`)
167+
- `resultLength` **i32** the maximal length of result data
168+
169+
**Returns**
170+
171+
`result` **i32** Returns 1 or 0 depending on if the VM trapped on the message or not
172+
154173
## storageStore
155174

156175
Store 256-bit a value in memory to persistent storage
@@ -252,6 +271,8 @@ Creates a new contract with a given value.
252271
- `length` **i32** the data length
253272
- `resultOffset` **i32ptr** the memory offset to write the new contract address to (`address`)
254273

274+
*Note*: `create` will clear the return buffer in case of success or may fill it with data coming from `revert`.
275+
255276
**Returns**
256277

257278
`result` **i32** Returns 1 or 0 depending on if the VM trapped on the message or not
@@ -390,6 +411,53 @@ Set the returning output data for the execution.
390411

391412
*nothing*
392413

414+
## revert
415+
416+
Set the returning output data for the execution.
417+
418+
*Note*: multiple invocations will overwrite the previous data.
419+
420+
**Parameters**
421+
422+
- `dataOffset` **i32ptr** the memory offset of the output data (`bytes`)
423+
- `length` **i32** the length of the output data
424+
425+
**Returns**
426+
427+
*nothing*
428+
429+
## getReturnDataSize
430+
431+
Get size of current return data buffer to memory. This contains the return data
432+
from the last executed `call`, `callCode`, `callDelegate`, `callStatic` or `create`.
433+
434+
*Note*: `create` only fills the return data buffer in case of a failure.
435+
436+
**Parameters**
437+
438+
*none*
439+
440+
**Returns**
441+
442+
`dataSize` **i32**
443+
444+
## returnDataCopy
445+
446+
Copies the current return data buffer to memory. This contains the return data
447+
from last executed `call`, `callCode`, `callDelegate`, `callStatic` or `create`.
448+
449+
*Note*: `create` only fills the return data buffer in case of a failure.
450+
451+
**Parameters**
452+
453+
- `resultOffset` **i32ptr** the memory offset to load data into (`bytes`)
454+
- `dataOffset` **i32** the offset in the return data
455+
- `length` **i32** the length of data to copy
456+
457+
**Returns**
458+
459+
*nothing*
460+
393461
## selfDestruct
394462

395463
Mark account for later deletion and give the remaining balance to the specified

0 commit comments

Comments
 (0)