diff --git a/.gitignore b/.gitignore index 5caea8fa..7203fed0 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,10 @@ yarn-error.log* # jet brains .idea + + +# bun +bun.lockb + +# pnpm +pnpm-lock.yaml \ No newline at end of file diff --git a/components/Editor/index.tsx b/components/Editor/index.tsx index 94753726..7cbc3ad2 100644 --- a/components/Editor/index.tsx +++ b/components/Editor/index.tsx @@ -252,13 +252,6 @@ const Editor = ({ readOnly = false }: Props) => { // eslint-disable-next-line react-hooks/exhaustive-deps }, []) - useEffect(() => { - if (solcWorkerRef && solcWorkerRef.current) { - // @ts-ignore change the worker message, when value and args changed. - solcWorkerRef.current?.onmessage = handleWorkerMessage - } - }, [solcWorkerRef, handleWorkerMessage]) - useEffect(() => { if (deployedContractAddress) { log(`Contract deployed at address: ${deployedContractAddress}`) diff --git a/components/KBar/Results.tsx b/components/KBar/Results.tsx index 7f9d0c95..2fab0edd 100644 --- a/components/KBar/Results.tsx +++ b/components/KBar/Results.tsx @@ -8,15 +8,18 @@ const NO_GROUP = 'none' const Results = () => { const groups = useMatches() - const flattened = useMemo( - () => - groups.reduce((acc: any, curr: any) => { + + const flattened = useMemo(() => { + if (groups && Array.isArray(groups)) { + return groups.reduce((acc: any, curr: any) => { acc.push(curr.name) acc.push(...curr.actions) return acc - }, []), - [groups], - ) + }, []) + } else { + return [] + } + }, [groups]) return ( contribute? {' '} - ;) + ) )} diff --git a/components/Reference/Filters.tsx b/components/Reference/Filters.tsx index 3729823e..b13a1628 100644 --- a/components/Reference/Filters.tsx +++ b/components/Reference/Filters.tsx @@ -11,9 +11,14 @@ const debounceTimeout = 100 // ms type Props = { onSetFilter: (columnId: string, value: string) => void isPrecompiled?: boolean + isTransactionType?: boolean } -const Filters = ({ onSetFilter, isPrecompiled = false }: Props) => { +const Filters = ({ + onSetFilter, + isPrecompiled = false, + isTransactionType = false, +}: Props) => { const router = useRouter() const [searchKeyword, setSearchKeyword] = useState('') const [searchFilter, setSearchFilter] = useState({ @@ -21,17 +26,24 @@ const Filters = ({ onSetFilter, isPrecompiled = false }: Props) => { label: 'Name', }) - const filterByOptions = useMemo( - () => [ - { - label: !isPrecompiled ? 'Opcode' : 'Address', - value: 'opcodeOrAddress', - }, - { label: 'Name', value: 'name' }, - { label: 'Description', value: 'description' }, - ], - [isPrecompiled], - ) + const filterByOptions = useMemo(() => { + if (isTransactionType) { + return [ + { label: 'Type', value: 'type' }, + { label: 'Name', value: 'name' }, + { label: 'Description', value: 'description' }, + ] + } else { + return [ + { + label: !isPrecompiled ? 'Opcode' : 'Address', + value: 'opcodeOrAddress', + }, + { label: 'Name', value: 'name' }, + { label: 'Description', value: 'description' }, + ] + } + }, [isPrecompiled, isTransactionType]) const inputRef = useRef(null) diff --git a/components/Reference/Header.tsx b/components/Reference/Header.tsx index d8b12cea..66e54819 100644 --- a/components/Reference/Header.tsx +++ b/components/Reference/Header.tsx @@ -6,14 +6,23 @@ import { H2, Label } from 'components/ui' type Props = { isPrecompiled?: boolean + isTransactionType?: boolean } -const ReferenceHeader = ({ isPrecompiled }: Props) => { +const ReferenceHeader = ({ isPrecompiled, isTransactionType }: Props) => { const { selectedFork } = useContext(EthereumContext) + let title = 'Instructions' + if (isPrecompiled) { + title = 'Precompiled Contracts' + } + if (isTransactionType) { + title = 'Transaction Types' + } + return (

- {!isPrecompiled ? 'Instructions' : 'Precompiled Contracts'} + {title} {selectedFork && }

) diff --git a/components/Reference/columns.tsx b/components/Reference/columns.tsx index dfa56f10..ab4c44ed 100644 --- a/components/Reference/columns.tsx +++ b/components/Reference/columns.tsx @@ -5,6 +5,20 @@ import { StackBox } from 'components/ui' // Possible fields are defined in `Opcodes.json` type OpcodeRow = Row> +type RollupStyles = { + [key: string]: string +} + +const rollupStyles: RollupStyles = { + optimism: 'bg-red-500 text-white', + base: 'bg-blue-500 text-white', + arbitrumOne: 'bg-blue-300 text-white', + default: 'bg-gray-400 text-gray-800', +} + +const getRollupStyle = (rollupName: string | number) => + rollupStyles[rollupName] || rollupStyles.default + const filter = (rows: OpcodeRow[], id: string, filterValue: string) => { return rows.filter((row) => row.original[id] @@ -13,54 +27,98 @@ const filter = (rows: OpcodeRow[], id: string, filterValue: string) => { ) } -const columns = (isPrecompiled: boolean) => [ - { - Header: !isPrecompiled ? 'Opcode' : 'Address', - accessor: 'opcodeOrAddress', - className: !isPrecompiled ? 'uppercase' : undefined, - filter, - width: 48, - }, - { - Header: 'Name', - accessor: 'name', - filter, - width: 80, - }, - { - Header: 'Minimum Gas', - accessor: 'minimumFee', - width: 50, - }, - { - Header: !isPrecompiled ? 'Stack Input' : 'Input', - accessor: 'input', - Cell: ({ value }: { value: string }) => ( - - ), - width: 200, - className: 'hidden lg:table-cell', - }, - { - Header: !isPrecompiled ? 'Stack Output' : 'Output', - accessor: 'output', - Cell: ({ value }: { value: string }) => ( - - ), - width: 100, - className: 'hidden lg:table-cell', - }, - { - Header: 'Description', - accessor: 'description', - className: 'hidden md:table-cell', - }, -] +const columns = (isPrecompiled: boolean, isTransactionType = false) => { + if (isTransactionType) { + return [ + { + Header: 'Type', + accessor: 'type', + filter, + width: 48, + }, + { + Header: 'Name', + accessor: 'name', + filter, + width: 80, + }, + { + Header: 'Description', + accessor: 'description', + className: 'hidden md:table-cell', + }, + { + Header: 'Rollups', + accessor: 'rollups', + className: 'hidden md:table-cell', + Cell: ({ value }: { value: string }) => ( +
+ {Object.keys(value).map((rollupName, index) => ( + + {rollupName} + + ))} +
+ ), + }, + ] + } + + return [ + { + Header: !isPrecompiled ? 'Opcode' : 'Address', + accessor: 'opcodeOrAddress', + className: !isPrecompiled ? 'uppercase' : undefined, + filter, + width: 48, + }, + { + Header: 'Name', + accessor: 'name', + filter, + width: 80, + }, + { + Header: 'Minimum Gas', + accessor: 'minimumFee', + width: 50, + }, + { + Header: !isPrecompiled ? 'Stack Input' : 'Input', + accessor: 'input', + Cell: ({ value }: { value: string }) => ( + + ), + width: 200, + className: 'hidden lg:table-cell', + }, + { + Header: !isPrecompiled ? 'Stack Output' : 'Output', + accessor: 'output', + Cell: ({ value }: { value: string }) => ( + + ), + width: 100, + className: 'hidden lg:table-cell', + }, + { + Header: 'Description', + accessor: 'description', + className: 'hidden md:table-cell', + }, + ] +} export default columns diff --git a/components/Reference/index.tsx b/components/Reference/index.tsx index 2474e442..3e94e179 100644 --- a/components/Reference/index.tsx +++ b/components/Reference/index.tsx @@ -40,16 +40,21 @@ const ReferenceTable = ({ gasDocs, reference, isPrecompiled = false, + isTransactionType = false, }: { itemDocs: IItemDocs gasDocs: IGasDocs reference: IReferenceItem[] isPrecompiled?: boolean + isTransactionType?: boolean }) => { const router = useRouter() const { forks, selectedFork, onForkChange } = useContext(EthereumContext) const data = useMemo(() => reference, [reference]) - const columns = useMemo(() => tableColumns(isPrecompiled), [isPrecompiled]) + const columns = useMemo( + () => tableColumns(isPrecompiled, isTransactionType), + [isPrecompiled, isTransactionType], + ) const rowRefs = useRef([]) const [focusedOpcode, setFocusedOpcode] = useState() const { width: screenWidth } = useWindowSize() @@ -147,8 +152,15 @@ const ReferenceTable = ({ return ( <>
-
- +
+
diff --git a/components/ThemeSelector.tsx b/components/ThemeSelector.tsx index 9b0bb1fd..12f5cf3d 100644 --- a/components/ThemeSelector.tsx +++ b/components/ThemeSelector.tsx @@ -7,6 +7,13 @@ const ThemeSelector = () => { const { theme, setTheme, resolvedTheme } = useTheme() const actions: Action[] = [ + { + id: 'theme', + name: 'Select theme…', + shortcut: ['t'], + keywords: 'theme appearance', + section: 'Preferences', + }, { id: 'theme-light', name: 'Light', @@ -34,14 +41,6 @@ const ThemeSelector = () => { perform: () => setTheme('system'), parent: 'theme', }, - { - id: 'theme', - name: 'Select theme…', - shortcut: ['t'], - keywords: 'theme appearance', - section: 'Preferences', - children: ['theme-light', 'theme-dark', 'theme-system'], - }, ] useRegisterActions(actions, [actions]) diff --git a/components/layouts/Nav.tsx b/components/layouts/Nav.tsx index 2b56f5b6..0364e270 100644 --- a/components/layouts/Nav.tsx +++ b/components/layouts/Nav.tsx @@ -38,6 +38,7 @@ const Nav = () => { > OpcodesPrecompiled Contracts + Transactions TypesPlaygroundAbout the EVM diff --git a/components/ui/Hamburger.tsx b/components/ui/Hamburger.tsx index 52d03872..74b587ed 100644 --- a/components/ui/Hamburger.tsx +++ b/components/ui/Hamburger.tsx @@ -24,20 +24,20 @@ export const Hamburger: React.FC = ({ isActive, onClick }) => ( diff --git a/components/ui/StackBox.tsx b/components/ui/StackBox.tsx index 68f89433..0f208b88 100644 --- a/components/ui/StackBox.tsx +++ b/components/ui/StackBox.tsx @@ -3,19 +3,19 @@ import React from 'react' import cn from 'classnames' type Props = { - value: string + value?: string showEmpty?: boolean isFullWidth?: boolean className?: string } export const StackBox: React.FC = ({ - value, - showEmpty, + value = '', + showEmpty = true, isFullWidth, className, }) => { - if (!showEmpty && value.length === 0) { + if (!showEmpty && value.trim().length === 0) { return null } @@ -23,7 +23,7 @@ export const StackBox: React.FC = ({ return ( <> - {(parts.length > 0 ? parts : [value]).map((p: string, index: number) => ( + {(parts.length > 1 ? parts : [value]).map((p: string, index: number) => (
({ selectedFork: undefined, opcodes: [], precompiled: [], + transactionTypes: [], instructions: [], deployedContractAddress: undefined, isExecuting: false, @@ -135,6 +138,7 @@ export const EthereumProvider: React.FC<{}> = ({ children }) => { const [selectedFork, setSelectedFork] = useState() const [opcodes, setOpcodes] = useState([]) const [precompiled, setPrecompiled] = useState([]) + const [transactionTypes, setTransactionTypes] = useState([]) const [instructions, setInstructions] = useState([]) const [isExecuting, setIsExecuting] = useState(false) const [executionState, setExecutionState] = useState( @@ -151,9 +155,30 @@ export const EthereumProvider: React.FC<{}> = ({ children }) => { useEffect(() => { initVmInstance() + loadTransactionTypes() // eslint-disable-next-line react-hooks/exhaustive-deps }, []) + const loadTransactionTypes = () => { + const typesTransactions: IReferenceItem[] = Object.entries( + TranscationsMeta, + ).map(([key, value]) => { + return { + opcodeOrAddress: key, + name: value.name, + input: '', + output: '', + description: value.description, + staticFee: 0, + minimumFee: 0, + rollups: value.rollups, + transactionType: '', + } + }) + + setTransactionTypes(typesTransactions) + } + /** * Initializes the EVM instance. */ @@ -750,6 +775,7 @@ export const EthereumProvider: React.FC<{}> = ({ children }) => { selectedFork, opcodes, precompiled, + transactionTypes, instructions, deployedContractAddress, isExecuting, diff --git a/docs/opcodes/01.mdx b/docs/opcodes/01.mdx index 08cddab2..03e2bd94 100644 --- a/docs/opcodes/01.mdx +++ b/docs/opcodes/01.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Stop and Arithmetic Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -16,15 +16,16 @@ group: Stop and Arithmetic Operations ## Examples -| * | Input | Output | * | * | Input | Output | -|--:|------:|-------:|--:|--:|------:|-------:| -| `1` | `10` | `20` | * | `1` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | `0` | -| `2` | `10` | | * | `2` | `1` | | +| \* | Input | Output | \* | \* | Input | Output | +| --: | ----: | -----: | --: | --: | -------------------------------------------------------------------: | -----: | +| `1` | `10` | `20` | \* | `1` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | `0` | +| `2` | `10` | | \* | `2` | `1` | | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='y1z0z0twwy2v32%200xsssszt'~uuuuzv1%201y%2F%2F%20Example%20w%5CnvwPUSHuFFtwADDs~~%01stuvwyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/02.mdx b/docs/opcodes/02.mdx index 6edc192b..6192e807 100644 --- a/docs/opcodes/02.mdx +++ b/docs/opcodes/02.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Stop and Arithmetic Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -16,20 +16,21 @@ group: Stop and Arithmetic Operations ## Examples -| * | Input | Output | -|--:|------:|-------:| -| `1` | `10` | `100` | -| `2` | `10` | | +| \* | Input | Output | +| --: | ----: | -----: | +| `1` | `10` | `100` | +| `2` | `10` | | -| * | Input | Output | -|--:|------:|-------:| +| \* | Input | Output | +| --: | -------------------------------------------------------------------: | -------------------------------------------------------------------: | | `1` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE` | -| `2` | `2` | | +| `2` | `2` | | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='y1z10z10twwy2v32%200xssssz2t'~uuuuzv1%20y%2F%2F%20Example%20w%5CnvwPUSHuFFtwMULs~~%01stuvwyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/03.mdx b/docs/opcodes/03.mdx index 65c44127..8b1bd197 100644 --- a/docs/opcodes/03.mdx +++ b/docs/opcodes/03.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Stop and Arithmetic Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -16,15 +16,16 @@ group: Stop and Arithmetic Operations ## Examples -| * | Input | Output | * | * | Input | Output | -|--:|------:|-------:|--:|--:|------:|-------:| -| `1` | `10` | `0` | * | `1` | `0` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | -| `2` | `10` | | * | `2` | `1` | | +| \* | Input | Output | \* | \* | Input | Output | +| --: | ----: | -----: | --: | --: | ----: | -------------------------------------------------------------------: | +| `1` | `10` | `0` | \* | `1` | `0` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | +| `2` | `10` | | \* | `2` | `1` | | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='z1~10~1wyyz2~1~w'~yPUSH1%20z%2F%2F%20Example%20y%5Cnw0ySUB%01wyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/04.mdx b/docs/opcodes/04.mdx index 3a658ab2..fa5fd8e7 100644 --- a/docs/opcodes/04.mdx +++ b/docs/opcodes/04.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Stop and Arithmetic Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -16,15 +16,16 @@ group: Stop and Arithmetic Operations ## Examples -| * | Input | Output | * | * | Input | Output | -|--:|------:|-------:|--:|--:|------:|-------:| -| `1` | `10` | `1` | * | `1` | `1` | `0` | -| `2` | `10` | | * | `2` | `2` | | +| \* | Input | Output | \* | \* | Input | Output | +| --: | ----: | -----: | --: | --: | ----: | -----: | +| `1` | `10` | `1` | \* | `1` | `1` | `0` | +| `2` | `10` | | \* | `2` | `2` | | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='z1~10~10wyyz2~2~1w'~yPUSH1%20z%2F%2F%20Example%20y%5CnwyDIV%01wyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/05.mdx b/docs/opcodes/05.mdx index c4f48023..ea8abbe5 100644 --- a/docs/opcodes/05.mdx +++ b/docs/opcodes/05.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Stop and Arithmetic Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -20,15 +20,16 @@ All values are treated as two’s complement signed 256-bit integers. Note the o ## Examples -| * | Input | Output | * | * | Input | Output | -|--:|------:|-------:|--:|--:|------:|-------:| -| `1` | `10` | `1` | * | `1` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE` | `2` | -| `2` | `10` | | * | `2` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | | +| \* | Input | Output | \* | \* | Input | Output | +| --: | ----: | -----: | --: | --: | -------------------------------------------------------------------: | -----: | +| `1` | `10` | `1` | \* | `1` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE` | `2` | +| `2` | `10` | | \* | `2` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='y1vvszzy2wrFwrEs'~uuuz%5Cny%2F%2F%20Example%20wt32%200xr~vt1%2010uFFFtzPUSHszSDIVr~~~%01rstuvwyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/06.mdx b/docs/opcodes/06.mdx index 921af2a3..1d9a315b 100644 --- a/docs/opcodes/06.mdx +++ b/docs/opcodes/06.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Stop and Arithmetic Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -16,15 +16,16 @@ group: Stop and Arithmetic Operations ## Examples -| * | Input | Output | * | * | Input | Output | -|--:|------:|-------:|--:|--:|------:|-------:| -| `1` | `10` | `1` | * | `1` | `17` | `2` | -| `2` | `3` | | * | `2` | `5` | | +| \* | Input | Output | \* | \* | Input | Output | +| --: | ----: | -----: | --: | --: | ----: | -----: | +| `1` | `10` | `1` | \* | `1` | `17` | `2` | +| `2` | `3` | | \* | `2` | `5` | | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='z1~3~10wyyz2~5~17w'~yPUSH1%20z%2F%2F%20Example%20y%5CnwyMOD%01wyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/07.mdx b/docs/opcodes/07.mdx index 9f6977c0..a6b5b76f 100644 --- a/docs/opcodes/07.mdx +++ b/docs/opcodes/07.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Stop and Arithmetic Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -20,20 +20,21 @@ All values are treated as two’s complement signed 256-bit integers. Note the o ## Examples -| * | Input | Output | -|--:|------:|-------:| -| `1` | `10` | `1` | -| `2` | `3` | | +| \* | Input | Output | +| --: | ----: | -----: | +| `1` | `10` | `1` | +| `2` | `3` | | -| * | Input | Output | -|--:|------:|-------:| +| \* | Input | Output | +| --: | -------------------------------------------------------------------: | -------------------------------------------------------------------: | | `1` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE` | -| `2` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD` | | +| `2` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD` | | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='y1s3s10tzzy2wrDwr8t'~uuuz%5Cny%2F%2F%20Example%20wv32%200xr~vzPUSHuFFFtzSMODsv1%20r~~~%01rstuvwyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/08.mdx b/docs/opcodes/08.mdx index 4f82f6e3..4341ca30 100644 --- a/docs/opcodes/08.mdx +++ b/docs/opcodes/08.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Stop and Arithmetic Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -21,16 +21,17 @@ All intermediate calculations of this operation are not subject to the 2256 ## Examples -| * | Input | Output | * | * | Input | Output | -|--:|------:|-------:|--:|--:|------:|-------:| -| `1` | `10` | `4` | * | `1` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | `1` | -| `2` | `10` | | * | `2` | `2` | | -| `3` | `8` | | * | `2` | `2` | | +| \* | Input | Output | \* | \* | Input | Output | +| --: | ----: | -----: | --: | --: | -------------------------------------------------------------------: | -----: | +| `1` | `10` | `4` | \* | `1` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | `1` | +| `2` | `10` | | \* | `2` | `2` | | +| `3` | `8` | | \* | `2` | `2` | | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='y1z8z10z10vwwy2z2z2u32%200xssssv'~ttttzu1%20y%2F%2F%20Example%20w%5CnvwADDMODuwPUSHtFFs~~%01stuvwyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/09.mdx b/docs/opcodes/09.mdx index ad2c66e6..3f553557 100644 --- a/docs/opcodes/09.mdx +++ b/docs/opcodes/09.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Stop and Arithmetic Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -21,16 +21,17 @@ All intermediate calculations of this operation are not subject to the 2256 ## Examples -| * | Input | Output | * | * | Input | Output | -|--:|------:|-------:|--:|--:|------:|-------:| -| `1` | `10` | `4` | * | `1` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | `9` | -| `2` | `10` | | * | `2` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | | -| `3` | `8` | | * | `3` | `12` | | +| \* | Input | Output | \* | \* | Input | Output | +| --: | ----: | -----: | --: | --: | -------------------------------------------------------------------: | -----: | +| `1` | `10` | `4` | \* | `1` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | `9` | +| `2` | `10` | | \* | `2` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | | +| `3` | `8` | | \* | `3` | `12` | | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='y1v8v10v10twwy2v12usust'~rrrrzwPUSHy%2F%2F%20Example%20w%5Cnvz1%20uz32%200xstwMULMODs~~~~rFF%01rstuvwyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/0A.mdx b/docs/opcodes/0A.mdx index 0f18a64d..cfa7d29d 100644 --- a/docs/opcodes/0A.mdx +++ b/docs/opcodes/0A.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Stop and Arithmetic Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -16,15 +16,16 @@ group: Stop and Arithmetic Operations ## Examples -| * | Input | Output | * | * | Input | Output | -|--:|------:|-------:|--:|--:|------:|-------:| -| `1` | `10` | `100` | * | `1` | `2` | `4` | -| `2` | `2` | | * | `2` | `2` | | +| \* | Input | Output | \* | \* | Input | Output | +| --: | ----: | -----: | --: | --: | ----: | -----: | +| `1` | `10` | `100` | \* | `1` | `2` | `4` | +| `2` | `2` | | \* | `2` | `2` | | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='z1~2~10wyyz2~2~2w'~yPUSH1%20z%2F%2F%20Example%20y%5CnwyEXP%01wyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/0B.mdx b/docs/opcodes/0B.mdx index b5e474bb..93b8fa69 100644 --- a/docs/opcodes/0B.mdx +++ b/docs/opcodes/0B.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Stop and Arithmetic Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -16,15 +16,16 @@ group: Stop and Arithmetic Operations ## Examples -| * | Input | Output | * | * | Input | Output | -|--:|------:|-------:|--:|--:|------:|-------:| -| `1` | `0` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | * | `1` | `0` | `0x7F` | -| `2` | `0xFF` | | * | `2` | `0x7F` | | +| \* | Input | Output | \* | \* | Input | Output | +| --: | -----: | -------------------------------------------------------------------: | --: | --: | -----: | -----: | +| `1` | `0` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | \* | `1` | `0` | `0x7F` | +| `2` | `0xFF` | | \* | `2` | `0x7F` | | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='z1~xFywwz2~x7y'~wPUSH1%200z%2F%2F%20Example%20yF~wSIGNEXTENDw%5Cn%01wyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/10.mdx b/docs/opcodes/10.mdx index fde2dfa4..14124f21 100644 --- a/docs/opcodes/10.mdx +++ b/docs/opcodes/10.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Comparison & Bitwise Logic Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -16,15 +16,16 @@ group: Comparison & Bitwise Logic Operations ## Examples -| * | Input | Output | * | * | Input | Output | -|--:|------:|-------:|--:|--:|------:|-------:| -| `1` | `9` | `1` | * | `1` | `10` | `0` | -| `2` | `10` | | * | `2` | `10` | | +| \* | Input | Output | \* | \* | Input | Output | +| --: | ----: | -----: | --: | --: | ----: | -----: | +| `1` | `9` | `1` | \* | `1` | `10` | `0` | +| `2` | `10` | | \* | `2` | `10` | | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='z1w~9yLTyyz2wwyLT'~yPUSH1%20z%2F%2F%20Example%20y%5Cnw~10%01wyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/11.mdx b/docs/opcodes/11.mdx index 75b0fd3c..9072c472 100644 --- a/docs/opcodes/11.mdx +++ b/docs/opcodes/11.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Comparison & Bitwise Logic Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -16,15 +16,16 @@ group: Comparison & Bitwise Logic Operations ## Examples -| * | Input | Output | * | * | Input | Output | -|--:|------:|-------:|--:|--:|------:|-------:| -| `1` | `10` | `1` | * | `1` | `10` | `0` | -| `2` | `9` | | * | `2` | `10` | | +| \* | Input | Output | \* | \* | Input | Output | +| --: | ----: | -----: | --: | --: | ----: | -----: | +| `1` | `10` | `1` | \* | `1` | `10` | `0` | +| `2` | `9` | | \* | `2` | `10` | | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='z1~9wyyz2~10w'~yPUSH1%20z%2F%2F%20Example%20y%5Cnw~10yGT%01wyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/12.mdx b/docs/opcodes/12.mdx index 5e535bf9..07f745dd 100644 --- a/docs/opcodes/12.mdx +++ b/docs/opcodes/12.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Comparison & Bitwise Logic Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -20,15 +20,16 @@ All values are treated as two’s complement signed 256-bit integers. ## Examples -| * | Input | Output | * | * | Input | Output | -|--:|------:|-------:|--:|--:|------:|-------:| -| `1` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | `1` | * | `1` | `10` | `0` | -| `2` | `0` | | * | `2` | `10` | | +| \* | Input | Output | \* | \* | Input | Output | +| --: | -------------------------------------------------------------------: | -----: | --: | --: | ----: | -----: | +| `1` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | `1` | \* | `1` | `10` | `0` | +| `2` | `0` | | \* | `2` | `10` | | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='y1z9v32%200xsssstwwy2z10z10t'~uuuuzv1%20y%2F%2F%20Example%20w%5CnvwPUSHuFFtwSLTs~~%01stuvwyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/13.mdx b/docs/opcodes/13.mdx index 1590bfac..a2481298 100644 --- a/docs/opcodes/13.mdx +++ b/docs/opcodes/13.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Comparison & Bitwise Logic Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -20,15 +20,16 @@ All values are treated as two’s complement signed 256-bit integers. ## Examples -| * | Input | Output | * | * | Input | Output | -|--:|------:|-------:|--:|--:|------:|-------:| -| `1` | `0` | `1` | * | `1` | `10` | `0` | -| `2` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | | * | `2` | `10` | | +| \* | Input | Output | \* | \* | Input | Output | +| --: | -------------------------------------------------------------------: | -----: | --: | --: | ----: | -----: | +| `1` | `0` | `1` | \* | `1` | `10` | `0` | +| `2` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | | \* | `2` | `10` | | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='y1v32%200xssssz9twwy2z10z10t'~uuuuzv1%20y%2F%2F%20Example%20w%5CnvwPUSHuFFtwSGTs~~%01stuvwyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/14.mdx b/docs/opcodes/14.mdx index adea33f0..ba2cac97 100644 --- a/docs/opcodes/14.mdx +++ b/docs/opcodes/14.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Comparison & Bitwise Logic Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -16,15 +16,16 @@ group: Comparison & Bitwise Logic Operations ## Examples -| * | Input | Output | * | * | Input | Output | -|--:|------:|-------:|--:|--:|------:|-------:| -| `1` | `10` | `1` | * | `1` | `10` | `0` | -| `2` | `10` | | * | `2` | `5` | | +| \* | Input | Output | \* | \* | Input | Output | +| --: | ----: | -----: | --: | --: | ----: | -----: | +| `1` | `10` | `1` | \* | `1` | `10` | `0` | +| `2` | `10` | | \* | `2` | `5` | | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='z1~10wyyz2~5w'~yPUSH1%20z%2F%2F%20Example%20y%5Cnw~10yEQ%01wyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/15.mdx b/docs/opcodes/15.mdx index ac351f99..a6f18ecf 100644 --- a/docs/opcodes/15.mdx +++ b/docs/opcodes/15.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Comparison & Bitwise Logic Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -15,14 +15,15 @@ group: Comparison & Bitwise Logic Operations ## Examples -| * | Input | Output | * | * | Input | Output | -|--:|------:|-------:|--:|--:|------:|-------:| -| `1` | `10` | `0` | * | `1` | `0` | `1` | +| \* | Input | Output | \* | \* | Input | Output | +| --: | ----: | -----: | --: | --: | ----: | -----: | +| `1` | `10` | `0` | \* | `1` | `0` | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='~1y1wzz~2yw'~%2F%2F%20Example%20z%5CnyzPUSH1%20w0zISZERO%01wyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/16.mdx b/docs/opcodes/16.mdx index 55a0b1dc..d60e253b 100644 --- a/docs/opcodes/16.mdx +++ b/docs/opcodes/16.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Comparison & Bitwise Logic Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -16,15 +16,16 @@ group: Comparison & Bitwise Logic Operations ## Examples -| * | Input | Output | * | * | Input | Output | -|--:|------:|-------:|--:|--:|------:|-------:| -| `1` | `0xF` | `0xF` | * | `1` | `0xFF` | `0` | -| `2` | `0xF` | | * | `2` | `0` | | +| \* | Input | Output | \* | \* | Input | Output | +| --: | ----: | -----: | --: | --: | -----: | -----: | +| `1` | `0xF` | `0xF` | \* | `1` | `0xFF` | `0` | +| `2` | `0xF` | | \* | `2` | `0` | | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='z1~xF~xwyyz2~~xFw'~yPUSH1%200z%2F%2F%20Example%20y%5CnwFyAND%01wyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/17.mdx b/docs/opcodes/17.mdx index b6751d4d..b52c3408 100644 --- a/docs/opcodes/17.mdx +++ b/docs/opcodes/17.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Comparison & Bitwise Logic Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -16,15 +16,16 @@ group: Comparison & Bitwise Logic Operations ## Examples -| * | Input | Output | * | * | Input | Output | -|--:|------:|-------:|--:|--:|------:|-------:| -| `1` | `0xF0` | `0xFF` | * | `1` | `0xFF` | `0xFF` | -| `2` | `0xF` | | * | `2` | `0xFF` | | +| \* | Input | Output | \* | \* | Input | Output | +| --: | -----: | -----: | --: | --: | -----: | -----: | +| `1` | `0xF0` | `0xFF` | \* | `1` | `0xFF` | `0xFF` | +| `2` | `0xF` | | \* | `2` | `0xFF` | | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='z1~~0yORyyz2~F~FyOR'~yPUSH1%200xFz%2F%2F%20Example%20y%5Cn%01yz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/18.mdx b/docs/opcodes/18.mdx index 6b6f2460..6a2a9b7a 100644 --- a/docs/opcodes/18.mdx +++ b/docs/opcodes/18.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Comparison & Bitwise Logic Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -16,15 +16,16 @@ group: Comparison & Bitwise Logic Operations ## Examples -| * | Input | Output | * | * | Input | Output | -|--:|------:|-------:|--:|--:|------:|-------:| -| `1` | `0xF0` | `0xFF` | * | `1` | `0xFF` | `0` | -| `2` | `0xF` | | * | `2` | `0xFF` | | +| \* | Input | Output | \* | \* | Input | Output | +| --: | -----: | -----: | --: | --: | -----: | -----: | +| `1` | `0xF0` | `0xFF` | \* | `1` | `0xFF` | `0` | +| `2` | `0xF` | | \* | `2` | `0xFF` | | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='z1~~0wyyz2~F~Fw'~yPUSH1%200xFz%2F%2F%20Example%20y%5CnwyXOR%01wyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/19.mdx b/docs/opcodes/19.mdx index 906f37fa..cbe2ce44 100644 --- a/docs/opcodes/19.mdx +++ b/docs/opcodes/19.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Comparison & Bitwise Logic Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -15,14 +15,15 @@ group: Comparison & Bitwise Logic Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `0` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | -------------------------------------------------------------------: | +| `1` | `0` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='PUSH1%200%5CnNOT'_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/1A.mdx b/docs/opcodes/1A.mdx index 955beea7..8627d667 100644 --- a/docs/opcodes/1A.mdx +++ b/docs/opcodes/1A.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Comparison & Bitwise Logic Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -16,15 +16,16 @@ group: Comparison & Bitwise Logic Operations ## Examples -| * | Input | Output | * | * | Input | Output | -|--:|------:|-------:|--:|--:|------:|-------:| -| `1` | `31` | `0xFF` | * | `1` | `30` | `0xFF` | -| `2` | `0xFF` | | * | `2` | `0xFF00` | | +| \* | Input | Output | \* | \* | Input | Output | +| --: | -----: | -----: | --: | --: | -------: | -----: | +| `1` | `31` | `0xFF` | \* | `1` | `30` | `0xFF` | +| `2` | `0xFF` | | \* | `2` | `0xFF00` | | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='z1~0xFF~31vyyz2w2%200xFF00~30v'~w1%20z%2F%2F%20Example%20y%5CnwyPUSHvyBYTE%01vwyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/1B.mdx b/docs/opcodes/1B.mdx index 681e5d2b..26e139dc 100644 --- a/docs/opcodes/1B.mdx +++ b/docs/opcodes/1B.mdx @@ -3,7 +3,7 @@ fork: Constantinople group: Comparison & Bitwise Logic Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -20,20 +20,21 @@ Shift the bits towards the most significant one. The bits moved after the 256th ## Examples -| * | Input | Output | -|--:|------:|-------:| -| `1` | `1` | `2` | -| `2` | `1` | | +| \* | Input | Output | +| --: | ----: | -----: | +| `1` | `1` | `2` | +| `2` | `1` | | -| * | Input | Output | -|--:|------:|-------:| -| `1` | `4` | `0xF000000000000000000000000000000000000000000000000000000000000000` | -| `2` | `0xFF00000000000000000000000000000000000000000000000000000000000000` | | +| \* | Input | Output | +| --: | -------------------------------------------------------------------: | -------------------------------------------------------------------: | +| `1` | `4` | `0xF000000000000000000000000000000000000000000000000000000000000000` | +| `2` | `0xFF00000000000000000000000000000000000000000000000000000000000000` | | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='y1z1z1swwy2v32%200xFFuuuuutz4s'~tttzv1%20y%2F%2F%20Example%20w%5CnvwPUSHu~~t00swSHL%01stuvwyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/1C.mdx b/docs/opcodes/1C.mdx index ea8d307d..6130ba7b 100644 --- a/docs/opcodes/1C.mdx +++ b/docs/opcodes/1C.mdx @@ -3,7 +3,7 @@ fork: Constantinople group: Comparison & Bitwise Logic Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -20,15 +20,16 @@ Shift the bits towards the least significant one. The bits moved before the firs ## Examples -| * | Input | Output | * | * | Input | Output | -|--:|------:|-------:|--:|--:|------:|-------:| -| `1` | `1` | `1` | * | `1` | `4` | `0xF` | -| `2` | `2` | | * | `2` | `0xFF` | | +| \* | Input | Output | \* | \* | Input | Output | +| --: | ----: | -----: | --: | --: | -----: | -----: | +| `1` | `1` | `1` | \* | `1` | `4` | `0xF` | +| `2` | `2` | | \* | `2` | `0xFF` | | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='z1~2~1wyyz2~0xFF~4w'~yPUSH1%20z%2F%2F%20Example%20y%5CnwySHR%01wyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/1D.mdx b/docs/opcodes/1D.mdx index 95200d20..81f30509 100644 --- a/docs/opcodes/1D.mdx +++ b/docs/opcodes/1D.mdx @@ -3,7 +3,7 @@ fork: Constantinople group: Comparison & Bitwise Logic Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -20,20 +20,21 @@ Shift the bits towards the least significant one. The bits moved before the firs ## Examples -| * | Input | Output | -|--:|------:|-------:| -| `1` | `1` | `1` | -| `2` | `2` | | +| \* | Input | Output | +| --: | ----: | -----: | +| `1` | `1` | `1` | +| `2` | `2` | | -| * | Input | Output | -|--:|------:|-------:| -| `1` | `4` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | -| `2` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0` | | +| \* | Input | Output | +| --: | -------------------------------------------------------------------: | -------------------------------------------------------------------: | +| `1` | `4` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | +| `2` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0` | | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='y1z2z1twwy2v32%200xuuu0z4t'~FFFFFFFzv1%20y%2F%2F%20Example%20w%5CnvwPUSHu~~~twSAR%01tuvwyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/20.mdx b/docs/opcodes/20.mdx index 3222795b..1a575cf5 100644 --- a/docs/opcodes/20.mdx +++ b/docs/opcodes/20.mdx @@ -3,7 +3,7 @@ fork: Frontier group: SHA3 --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -16,19 +16,20 @@ group: SHA3 ## Example -| Memory | -|-------:| -| `0xFFFFFFFF`| +| Memory | +| -----------: | +| `0xFFFFFFFF` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | `0` | `0x29045A592007D0C246EF02C2223570DA9522D0CF0F73282C79A1BC8F0BB2C238` | -| `2` | `4` | | +| \* | Input | Output | +| --: | ----: | -------------------------------------------------------------------: | +| `1` | `0` | `0x29045A592007D0C246EF02C2223570DA9522D0CF0F73282C79A1BC8F0BB2C238` | +| `2` | `4` | | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='sPutkrequired%20valugin%20memoryj32%200xFFFFFFFFffffz0wMSTOREwwsCallkopcodez4z0wSHA3'~0000000zj1%20w%5Cns%2F%2F%20k%20thgjwPUSHge%20f~~%01fgjkswz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/30.mdx b/docs/opcodes/30.mdx index 3b4c26f6..a8617618 100644 --- a/docs/opcodes/30.mdx +++ b/docs/opcodes/30.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Environmental Information --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack output @@ -11,14 +11,15 @@ group: Environmental Information ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x9bbfed6889322e016e0a02ee459d306fc19545d8` | +| \* | Input | Output | +| --: | ----: | -------------------------------------------: | +| `1` | | `0x9bbfed6889322e016e0a02ee459d306fc19545d8` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='ADDRESS'_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/31.mdx b/docs/opcodes/31.mdx index 59e5f183..62eed2ec 100644 --- a/docs/opcodes/31.mdx +++ b/docs/opcodes/31.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Environmental Information --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -15,8 +15,8 @@ group: Environmental Information ## Example -| * | Input | Output | -|--:|------:|-------:| +| \* | Input | Output | +| --: | -------------------------------------------: | -------: | | `1` | `0x9bbfed6889322e016e0a02ee459d306fc19545d8` | `125985` | [Reproduce in playground](/playground?callValue=125985&unit=Wei&codeType=Mnemonic&code='%2F%2F%20Read%20current%20contract%20balance%5CnADDRESS%5CnBALANCE'_). @@ -24,5 +24,6 @@ group: Environmental Information ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/32.mdx b/docs/opcodes/32.mdx index 2f690980..ddec2518 100644 --- a/docs/opcodes/32.mdx +++ b/docs/opcodes/32.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Environmental Information --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack output @@ -11,14 +11,15 @@ group: Environmental Information ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0xbe862ad9abfe6f22bcb087716c7d89a26051f74c` | +| \* | Input | Output | +| --: | ----: | -------------------------------------------: | +| `1` | | `0xbe862ad9abfe6f22bcb087716c7d89a26051f74c` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='ORIGIN'_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/33.mdx b/docs/opcodes/33.mdx index 9ae9ea33..feb1ab39 100644 --- a/docs/opcodes/33.mdx +++ b/docs/opcodes/33.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Environmental Information --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack output @@ -11,14 +11,15 @@ group: Environmental Information ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0xbe862ad9abfe6f22bcb087716c7d89a26051f74c` | +| \* | Input | Output | +| --: | ----: | -------------------------------------------: | +| `1` | | `0xbe862ad9abfe6f22bcb087716c7d89a26051f74c` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='CALLER'_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/34.mdx b/docs/opcodes/34.mdx index 24fe3c1e..517d467d 100644 --- a/docs/opcodes/34.mdx +++ b/docs/opcodes/34.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Environmental Information --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack output @@ -11,14 +11,15 @@ group: Environmental Information ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `123456789` | +| \* | Input | Output | +| --: | ----: | ----------: | +| `1` | | `123456789` | [Reproduce in playground](/playground?callValue=123456789&unit=Wei&codeType=Mnemonic&code='CALLVALUE'_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/35.mdx b/docs/opcodes/35.mdx index f95c85d2..c415cdb2 100644 --- a/docs/opcodes/35.mdx +++ b/docs/opcodes/35.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Environmental Information --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -15,22 +15,23 @@ group: Environmental Information ## Examples -| Calldata | -|---------| +| Calldata | +| -------------------------------------------------------------------- | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | `0` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | -------------------------------------------------------------------: | +| `1` | `0` | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | `31` | `0xFF00000000000000000000000000000000000000000000000000000000000000` | +| \* | Input | Output | +| --: | ----: | -------------------------------------------------------------------: | +| `1` | `31` | `0xFF00000000000000000000000000000000000000000000000000000000000000` | [Reproduce in playground](/playground?unit=Wei&callData=0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF&codeType=Mnemonic&code='~1w0yzz~2w31y'~%2F%2F%20Example%20z%5CnyzCALLDATALOADwzPUSH1%20%01wyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/36.mdx b/docs/opcodes/36.mdx index 6711ffe2..388809f9 100644 --- a/docs/opcodes/36.mdx +++ b/docs/opcodes/36.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Environmental Information --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack output @@ -12,17 +12,18 @@ group: Environmental Information ## Example | Calldata | -|---------| -| `0xFF` | +| -------- | +| `0xFF` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `1` | +| \* | Input | Output | +| --: | ----: | -----: | +| `1` | | `1` | [Reproduce in playground](/playground?unit=Wei&callData=0xFF&codeType=Mnemonic&code='CALLDATASIZE'_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/37.mdx b/docs/opcodes/37.mdx index de439d80..f64066df 100644 --- a/docs/opcodes/37.mdx +++ b/docs/opcodes/37.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Environmental Information --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -17,26 +17,26 @@ For out of bound bytes, 0s will be copied. ## Examples -| Calldata | -|---------:| +| Calldata | +| -------------------------------------------------------------------: | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | -| * | Input 1 | * | * | Input 2 | -|--:|--------:|--:|--:|--------:| -| `1` | `0` | * | `1` | `0` | -| `2` | `0` | * | `2` | `31` | -| `3` | `32` | * | `3` | `8` | +| \* | Input 1 | \* | \* | Input 2 | +| --: | ------: | --: | --: | ------: | +| `1` | `0` | \* | `1` | `0` | +| `2` | `0` | \* | `2` | `31` | +| `3` | `32` | \* | `3` | `8` | | Memory before | -|-------------:| -| `0` | +| ------------: | +| `0` | -| Memory after input 1 | -|---------------------:| +| Memory after input 1 | +| -------------------------------------------------------------------: | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | -| Memory after input 1 then 2 | -|----------------------------:| +| Memory after input 1 then 2 | +| -------------------------------------------------------------------: | | `0xFF00000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | [Reproduce in playground](/playground?unit=Wei&callData=0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF&codeType=Mnemonic&code='z1~32~0ywwz2~8~31y'~wPUSH1%20z%2F%2F%20Example%20y~0wCALLDATACOPYw%5Cn%01wyz~_). @@ -44,5 +44,6 @@ For out of bound bytes, 0s will be copied. ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/38.mdx b/docs/opcodes/38.mdx index 521e1709..84a40e80 100644 --- a/docs/opcodes/38.mdx +++ b/docs/opcodes/38.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Environmental Information --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -15,14 +15,15 @@ Each instruction occupies one byte. In the case of a [PUSH](/#60) instruction, t ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `32` | +| \* | Input | Output | +| --: | ----: | -----: | +| `1` | | `32` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='%2F%2F%20Add%20som~instructions%20to%20increas~th~cod~sizeyPUSH29%200yPOPyyCODESIZE'~e%20y%5Cn%01y~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/39.mdx b/docs/opcodes/39.mdx index 421d2da9..207a3973 100644 --- a/docs/opcodes/39.mdx +++ b/docs/opcodes/39.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Environmental Information --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -17,26 +17,26 @@ For out of bound bytes, 0s will be copied. ## Examples -| Code | -|-----:| +| Code | +| -------------------------------------------------------------------: | | `0x7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F` | -| * | Input 1 | * | * | Input 2 | -|--:|--------:|--:|--:|--------:| -| `1` | `0` | * | `1` | `0` | -| `2` | `0` | * | `2` | `31` | -| `3` | `32` | * | `3` | `8` | +| \* | Input 1 | \* | \* | Input 2 | +| --: | ------: | --: | --: | ------: | +| `1` | `0` | \* | `1` | `0` | +| `2` | `0` | \* | `2` | `31` | +| `3` | `32` | \* | `3` | `8` | | Memory before | -|--------------:| -| `0` | +| ------------: | +| `0` | -| Memory after input 1 | -|---------------------:| +| Memory after input 1 | +| -------------------------------------------------------------------: | | `0x7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F` | -| Memory after input 1 then 2 | -|----------------------------:| +| Memory after input 1 then 2 | +| -------------------------------------------------------------------: | | `0x7F00000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='qPutwbeginning%20ofwcodXtowexpected%20valueZ30VxWWWWWZ32VyyqRemovewvalues%20fromwstackTTj1~32~0_j2~8~31_'~Z1%20zFFFFFFy%5Cnw%20thXq%2F%2F%20jyyqExamplX_~0yCODECOPYZyPUSHXe%20WzzV%200TyPOP%01TVWXZ_jqwyz~_). @@ -44,5 +44,6 @@ For out of bound bytes, 0s will be copied. ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/3A.mdx b/docs/opcodes/3A.mdx index 6dd8ad79..cc213eb4 100644 --- a/docs/opcodes/3A.mdx +++ b/docs/opcodes/3A.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Environmental Information --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack output @@ -11,14 +11,15 @@ group: Environmental Information ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `10` | +| \* | Input | Output | +| --: | ----: | -----: | +| `1` | | `10` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='GASPRICE'_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/3B.mdx b/docs/opcodes/3B.mdx index 9ded649a..6a299cbb 100644 --- a/docs/opcodes/3B.mdx +++ b/docs/opcodes/3B.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Environmental Information --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -15,9 +15,9 @@ group: Environmental Information ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `0x43a61f3f4c73ea0d444c5c1c1a8544067a86219b` | `32` | +| \* | Input | Output | +| --: | -------------------------------------------: | -----: | +| `1` | `0x43a61f3f4c73ea0d444c5c1c1a8544067a86219b` | `32` | [Reproduce in playground][1]. @@ -26,5 +26,6 @@ group: Environmental Information ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/3C.mdx b/docs/opcodes/3C.mdx index f7880f44..2bc26f25 100644 --- a/docs/opcodes/3C.mdx +++ b/docs/opcodes/3C.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Environmental Information --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -18,27 +18,27 @@ For out of bound bytes, 0s will be copied. ## Examples -| Code | -|-----:| -|`0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | +| Code | +| -------------------------------------------------------------------: | +| `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | -| * | Input 1 | * | * | Input 2 | -|--:|--------:|--:|--:|--------:| -| `1` | `0x43a61f3f4c73ea0d444c5c1c1a8544067a86219b` | * | `1` | `0x43a61f3f4c73ea0d444c5c1c1a8544067a86219b` | -| `2` | `0` | * | `2` | `0` | -| `3` | `0` | * | `3` | `31` | -| `4` | `32` | * | `4` | `8` | +| \* | Input 1 | \* | \* | Input 2 | +| --: | -------------------------------------------: | --: | --: | -------------------------------------------: | +| `1` | `0x43a61f3f4c73ea0d444c5c1c1a8544067a86219b` | \* | `1` | `0x43a61f3f4c73ea0d444c5c1c1a8544067a86219b` | +| `2` | `0` | \* | `2` | `0` | +| `3` | `0` | \* | `3` | `31` | +| `4` | `32` | \* | `4` | `8` | | Memory before | -|--------------:| -| `0` | +| ------------: | +| `0` | -| Memory after input 1 | -|---------------------:| +| Memory after input 1 | +| -------------------------------------------------------------------: | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | -| Memory after input 1 then 2 | -|----------------------------:| +| Memory after input 1 then 2 | +| -------------------------------------------------------------------: | | `0xFF00000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | [Reproduce in playground][1] @@ -48,5 +48,6 @@ For out of bound bytes, 0s will be copied. ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/3D.mdx b/docs/opcodes/3D.mdx index 00706006..702ffd9d 100644 --- a/docs/opcodes/3D.mdx +++ b/docs/opcodes/3D.mdx @@ -3,7 +3,7 @@ fork: Byzantium group: Environmental Information --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -15,9 +15,9 @@ A sub context can be created with [CALL](/#F1), [CALLCODE](/#F2), [DELEGATECALL] ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `32` | +| \* | Input | Output | +| --: | ----: | -----: | +| `1` | | `32` | [Reproduce in playground][1] @@ -26,5 +26,6 @@ A sub context can be created with [CALL](/#F1), [CALLCODE](/#F2), [DELEGATECALL] ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/3E.mdx b/docs/opcodes/3E.mdx index c574f85c..b376f24d 100644 --- a/docs/opcodes/3E.mdx +++ b/docs/opcodes/3E.mdx @@ -3,7 +3,7 @@ fork: Byzantium group: Environmental Information --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -17,26 +17,26 @@ A sub context can be created with [CALL](/#F1), [CALLCODE](/#F2), [DELEGATECALL] ## Examples -| Return data | -|------------:| +| Return data | +| -------------------------------------------------------------------: | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | -| * | Input 1 | * | * | Input 2 | -|--:|--------:|--:|--:|--------:| -| `1` | `0` | * | `1` | `32` | -| `2` | `0` | * | `2` | `31` | -| `3` | `32` | * | `3` | `1` | +| \* | Input 1 | \* | \* | Input 2 | +| --: | ------: | --: | --: | ------: | +| `1` | `0` | \* | `1` | `32` | +| `2` | `0` | \* | `2` | `31` | +| `3` | `32` | \* | `3` | `1` | | Memory before | -|--------------:| -| `0` | +| ------------: | +| `0` | -| Memory after input 1 | -|---------------------:| +| Memory after input 1 | +| -------------------------------------------------------------------: | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | -| Memory after input 1 then 2 | -|----------------------------:| +| Memory after input 1 then 2 | +| ---------------------------------------------------------------------: | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | [Reproduce in playground][1] @@ -46,6 +46,7 @@ A sub context can be created with [CALL](/#F1), [CALLCODE](/#F2), [DELEGATECALL] ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. - The addition `offset` + `size` overflows. diff --git a/docs/opcodes/3F.mdx b/docs/opcodes/3F.mdx index 78f5a507..6a6d40d5 100644 --- a/docs/opcodes/3F.mdx +++ b/docs/opcodes/3F.mdx @@ -3,7 +3,7 @@ fork: Constantinople group: Environmental Information --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -15,8 +15,8 @@ group: Environmental Information ## Examples -| * | Input | Output | -|--:|------:|-------:| +| \* | Input | Output | +| --: | -------------------------------------------: | -------------------------------------------------------------------: | | `1` | `0x43a61f3f4c73ea0d444c5c1c1a8544067a86219b` | `0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470` | [Reproduce in playground][1] @@ -26,5 +26,6 @@ group: Environmental Information ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/40.mdx b/docs/opcodes/40.mdx index 74489d10..f3bd43ff 100644 --- a/docs/opcodes/40.mdx +++ b/docs/opcodes/40.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Block Information --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -15,12 +15,13 @@ group: Block Information ## Examples -| * | Input | Output | -|--:|------:|-------:| +| \* | Input | Output | +| --: | ----------: | -------------------------------------------------------------------: | | `1` | `599423545` | `0x29045A592007D0C246EF02C2223570DA9522D0CF0F73282C79A1BC8F0BB2C238` | ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/41.mdx b/docs/opcodes/41.mdx index 41784275..aa03cebc 100644 --- a/docs/opcodes/41.mdx +++ b/docs/opcodes/41.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Block Information --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack output @@ -11,12 +11,13 @@ group: Block Information ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x5B38Da6a701c568545dCfcB03FcB875f56beddC4` | +| \* | Input | Output | +| --: | ----: | -------------------------------------------: | +| `1` | | `0x5B38Da6a701c568545dCfcB03FcB875f56beddC4` | ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/42.mdx b/docs/opcodes/42.mdx index be27aa55..8bc362b1 100644 --- a/docs/opcodes/42.mdx +++ b/docs/opcodes/42.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Block Information --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack output @@ -11,12 +11,13 @@ group: Block Information ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `1636704767` | +| \* | Input | Output | +| --: | ----: | -----------: | +| `1` | | `1636704767` | ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/43.mdx b/docs/opcodes/43.mdx index 4e462593..38a72240 100644 --- a/docs/opcodes/43.mdx +++ b/docs/opcodes/43.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Block Information --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack output @@ -11,12 +11,13 @@ group: Block Information ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `1636704767` | +| \* | Input | Output | +| --: | ----: | -----------: | +| `1` | | `1636704767` | ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/44.mdx b/docs/opcodes/44.mdx index 33f6fba9..4ed782c7 100644 --- a/docs/opcodes/44.mdx +++ b/docs/opcodes/44.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Block Information --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack output @@ -11,12 +11,13 @@ group: Block Information ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `10995000000000000` | +| \* | Input | Output | +| --: | ----: | ------------------: | +| `1` | | `10995000000000000` | ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/44_merge.mdx b/docs/opcodes/44_merge.mdx index 99cf3441..5dcdc8b9 100644 --- a/docs/opcodes/44_merge.mdx +++ b/docs/opcodes/44_merge.mdx @@ -3,20 +3,21 @@ fork: Merge group: Block Information --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack output -0. `prevRandao`: previous block's [RANDAO mix](https://eips.ethereum.org/EIPS/eip-4399). +0. `prevRandao`: previous block's [RANDAO mix](https://eips.ethereum.org/EIPS/eip-4399). ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0xce124dee50136f3f93f19667fb4198c6b94eecbacfa300469e5280012757be94` | +| \* | Input | Output | +| --: | ----: | -------------------------------------------------------------------: | +| `1` | | `0xce124dee50136f3f93f19667fb4198c6b94eecbacfa300469e5280012757be94` | ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/45.mdx b/docs/opcodes/45.mdx index 6a3b92cb..624fb2b6 100644 --- a/docs/opcodes/45.mdx +++ b/docs/opcodes/45.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Block Information --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack output @@ -11,14 +11,15 @@ group: Block Information ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0xffffffffffff` | +| \* | Input | Output | +| --: | ----: | ---------------: | +| `1` | | `0xffffffffffff` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='GASLIMIT'_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/46.mdx b/docs/opcodes/46.mdx index 66a848f1..33130b6e 100644 --- a/docs/opcodes/46.mdx +++ b/docs/opcodes/46.mdx @@ -3,18 +3,18 @@ fork: Istanbul group: Block Information --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes Here are some chain ids: -| Id | Chain | -|---:|------:| -| 1 | Mainnet | -| 5 | Goerli | +| Id | Chain | +| -------: | ------: | +| 1 | Mainnet | +| 5 | Goerli | | 11155111 | Sepolia | -| 17000 | Holešky | +| 17000 | Holešky | ## Stack output @@ -22,14 +22,15 @@ Here are some chain ids: ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `1` | +| \* | Input | Output | +| --: | ----: | -----: | +| `1` | | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='CHAINID'_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/47.mdx b/docs/opcodes/47.mdx index 9566b767..5076af75 100644 --- a/docs/opcodes/47.mdx +++ b/docs/opcodes/47.mdx @@ -3,7 +3,7 @@ fork: Istanbul group: Block Information --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -15,14 +15,15 @@ Semantically equivalent of calling [BALANCE](/#31) with [ADDRESS](/#30) as param ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `9` | +| \* | Input | Output | +| --: | ----: | -----: | +| `1` | | `9` | [Reproduce in playground](/playground?callValue=9&unit=Wei&codeType=Mnemonic&code='SELFBALANCE'_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/48.mdx b/docs/opcodes/48.mdx index f133c06b..43a1fe78 100644 --- a/docs/opcodes/48.mdx +++ b/docs/opcodes/48.mdx @@ -3,7 +3,7 @@ fork: London group: Block Information --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack output @@ -11,14 +11,15 @@ group: Block Information ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `10` | +| \* | Input | Output | +| --: | ----: | -----: | +| `1` | | `10` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='BASEFEE'_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/50.mdx b/docs/opcodes/50.mdx index 36f065bc..ce4c0fc7 100644 --- a/docs/opcodes/50.mdx +++ b/docs/opcodes/50.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Stack Memory Storage and Flow Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -11,14 +11,15 @@ group: Stack Memory Storage and Flow Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `125985` | | +| \* | Input | Output | +| --: | -------: | -----: | +| `1` | `125985` | | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='PUSH3%20125985%5CnPOP'_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/51.mdx b/docs/opcodes/51.mdx index f7287d04..ec84df2c 100644 --- a/docs/opcodes/51.mdx +++ b/docs/opcodes/51.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Stack Memory Storage and Flow Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -19,18 +19,19 @@ Pop from the stack a word as `offset` to locate and read a word from the memory ## Examples -| Memory | -|-------:| +| Memory | +| -------------------------------------------------------------------: | | `0x00000000000000000000000000000000000000000000000000000000000000FF` | -| * | Input | Output | * | * | Input | Output | -|--:|------:|-------:|--:|--:|------:|-------:| -| `1` | `0` | `0xFF` | * | `1` | `1` | `0xFF00` | +| \* | Input | Output | \* | \* | Input | Output | +| --: | ----: | -----: | --: | --: | ----: | -------: | +| `1` | `0` | `0xFF` | \* | `1` | `1` | `0xFF00` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='qPut%20thkstatkin%20memoryg32%200xfffffdFFv0zMSTOREw1v0jw2v1jz'~dddz%5CnwzzqExamplkvg1%20q%2F%2F%20ke%20jzMLOADgzPUSHf~~d00%01dfgjkqvwz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/52.mdx b/docs/opcodes/52.mdx index b0c9c24f..6e7958f9 100644 --- a/docs/opcodes/52.mdx +++ b/docs/opcodes/52.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Stack Memory Storage and Flow Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -12,21 +12,21 @@ group: Stack Memory Storage and Flow Operations ## Examples -| * | Input 1 | * | * | Input 2 | -|--:|--------:|--:|--:|--------:| -| `1` | `0` | * | `1` | `1` | -| `2` | `0xFF` | * | `2` | `0xFF` | +| \* | Input 1 | \* | \* | Input 2 | +| --: | ------: | --: | --: | ------: | +| `1` | `0` | \* | `1` | `1` | +| `2` | `0xFF` | \* | `2` | `0xFF` | | Memory before | -|--------------:| -| `0` | +| ------------: | +| `0` | -| Memory after input 1 | -|---------------------:| +| Memory after input 1 | +| -------------------------------------------------------------------: | | `0x00000000000000000000000000000000000000000000000000000000000000FF` | -| Memory after input 1 then 2 | -|----------------------------:| +| Memory after input 1 then 2 | +| ---------------------------------------------------------------------: | | `0x0000000000000000000000000000000000000000000000000000000000000000FF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='z1v0wyz2v1w'~yPUSH1%20z%2F%2F%20Example%20y%5CnwyMSTOREyv~0xFF~%01vwyz~_). @@ -34,5 +34,6 @@ group: Stack Memory Storage and Flow Operations ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/53.mdx b/docs/opcodes/53.mdx index 44f93873..97be2de9 100644 --- a/docs/opcodes/53.mdx +++ b/docs/opcodes/53.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Stack Memory Storage and Flow Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -12,27 +12,28 @@ group: Stack Memory Storage and Flow Operations ## Examples -| * | Input 1 | * | * | Input 2 | -|--:|--------:|--:|--:|--------:| -| `1` | `0` | * | `1` | `1` | -| `2` | `0xFFFF` | * | `2` | `0xFF` | +| \* | Input 1 | \* | \* | Input 2 | +| --: | -------: | --: | --: | ------: | +| `1` | `0` | \* | `1` | `1` | +| `2` | `0xFFFF` | \* | `2` | `0xFF` | | Memory before | -|--------------:| -| `0` | +| ------------: | +| `0` | | Memory after input 1 | -|---------------------:| -| `0xFF` | +| -------------------: | +| `0xFF` | | Memory after input 1 then 2 | -|----------------------------:| -| `0xFFFF` | +| --------------------------: | +| `0xFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='z1v2%200xFFFFy0w~z2y0xFFy1w'~%5Cnz%2F%2F%20Example%20yv1%20w~MSTORE8~v~PUSH%01vwyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/54.mdx b/docs/opcodes/54.mdx index e2c28c74..585e549d 100644 --- a/docs/opcodes/54.mdx +++ b/docs/opcodes/54.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Stack Memory Storage and Flow Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -15,18 +15,19 @@ group: Stack Memory Storage and Flow Operations ## Examples -|Storage key | Storage value | -|-----------:|--------------:| -| `0` | `46` | +| Storage key | Storage value | +| ----------: | ------------: | +| `0` | `46` | -| * | Input | Output | * | * | Input | Output | -|--:|------:|-------:|--:|--:|------:|-------:| -| `1` | `0` | `46` | * | `1` | `1` | `0` | +| \* | Input | Output | \* | \* | Input | Output | +| --: | ----: | -----: | --: | --: | ----: | -----: | +| `1` | `0` | `46` | \* | `1` | `1` | `0` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='wSet%20up%20thrstatez46z0~SSTOREy1z0vy2z1v~'~%5Cnz~PUSH1%20y~~wExamplrw%2F%2F%20v~SLOADre%20%01rvwyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/55.mdx b/docs/opcodes/55.mdx index 9053763a..d7b7b648 100644 --- a/docs/opcodes/55.mdx +++ b/docs/opcodes/55.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Stack Memory Storage and Flow Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -12,30 +12,31 @@ group: Stack Memory Storage and Flow Operations ## Examples -| * | Input 1 | * | * | Input 2 | -|--:|--------:|--:|--:|--------:| -| `1` | `0` | * | `1` | `8965` | -| `2` | `0xFFFF` | * | `2` | `0xFF` | +| \* | Input 1 | \* | \* | Input 2 | +| --: | -------: | --: | --: | ------: | +| `1` | `0` | \* | `1` | `8965` | +| `2` | `0xFFFF` | \* | `2` | `0xFF` | | Storage key before | Storage value | -|-------------------:|--------------:| -| | | +| -----------------: | ------------: | +| | | | Storage key after input 1 | Storage value | -|--------------------------:|--------------:| -| `0` | `0xFFFF` | +| ------------------------: | ------------: | +| `0` | `0xFFFF` | | Storage key after input 1 then 2 | Storage value | -|---------------------------------:|--------------:| -| `0` | `0xFFFF` | -| `8965` | `0xFF` | +| -------------------------------: | ------------: | +| `0` | `0xFFFF` | +| `8965` | `0xFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='z1uFFv1%200w~z2uy8965w'~%5Cnz%2F%2F%20Example%20yv2%20w~SSTORE~v~PUSHuy0xFF%01uvwyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. - The current execution context is from a [STATICCALL](/#FA) (since Byzantium fork). -- When the amount of gas left to the transaction is less than or equal 2300 (since Istanbul fork). \ No newline at end of file +- When the amount of gas left to the transaction is less than or equal 2300 (since Istanbul fork). diff --git a/docs/opcodes/55/berlin.mdx b/docs/opcodes/55/berlin.mdx index 3a8f2cd7..3490a2bd 100644 --- a/docs/opcodes/55/berlin.mdx +++ b/docs/opcodes/55/berlin.mdx @@ -1,25 +1,25 @@ ## Gas ### Definitions: + - **value**: value from the stack input. - **current_value**: current value of the storage slot. - **original_value**: value of the storage slot before the current transaction. - - static_gas = {gasPrices|sstore} - - if value == current_value - if key is warm - base_dynamic_gas = {gasPrices|warmstorageread} - else - base_dynamic_gas = {gasPrices|sstoreNoopGasEIP2200} - else if current_value == original_value - if original_value == 0 - base_dynamic_gas = {gasPrices|sstoreInitGasEIP2200} - else - base_dynamic_gas = {gasPrices|sstoreCleanGasEIP2200} - else - base_dynamic_gas = {gasPrices|sstoreDirtyGasEIP2200} + static_gas = {gasPrices|sstore} + + if value == current_value + if key is warm + base_dynamic_gas = {gasPrices|warmstorageread} + else + base_dynamic_gas = {gasPrices|sstoreNoopGasEIP2200} + else if current_value == original_value + if original_value == 0 + base_dynamic_gas = {gasPrices|sstoreInitGasEIP2200} + else + base_dynamic_gas = {gasPrices|sstoreCleanGasEIP2200} + else + base_dynamic_gas = {gasPrices|sstoreDirtyGasEIP2200} On top of the cost above, {gasPrices|coldsload} is added to `base_dynamic_gas` if the slot is cold. See section [access sets](/about). diff --git a/docs/opcodes/55/constantinople.mdx b/docs/opcodes/55/constantinople.mdx index 23e6e02d..79310780 100644 --- a/docs/opcodes/55/constantinople.mdx +++ b/docs/opcodes/55/constantinople.mdx @@ -1,22 +1,22 @@ ## Gas ### Definitions: + - **value**: value from the stack input. - **current_value**: current value of the storage slot. - **original_value**: value of the storage slot before the current transaction. + static_gas = {gasPrices|sstore} - static_gas = {gasPrices|sstore} - - if value == current_value - dynamic_gas = {gasPrices|netSstoreNoopGas} - else if current_value == original_value - if original_value == 0 - dynamic_gas = {gasPrices|netSstoreInitGas} - else - dynamic_gas = {gasPrices|netSstoreCleanGas} - else - dynamic_gas = {gasPrices|netSstoreDirtyGas} + if value == current_value + dynamic_gas = {gasPrices|netSstoreNoopGas} + else if current_value == original_value + if original_value == 0 + dynamic_gas = {gasPrices|netSstoreInitGas} + else + dynamic_gas = {gasPrices|netSstoreCleanGas} + else + dynamic_gas = {gasPrices|netSstoreDirtyGas} ## Gas refunds diff --git a/docs/opcodes/55/istanbul.mdx b/docs/opcodes/55/istanbul.mdx index 67cc809d..0ae4d1b6 100644 --- a/docs/opcodes/55/istanbul.mdx +++ b/docs/opcodes/55/istanbul.mdx @@ -1,22 +1,22 @@ ## Gas ### Definitions: + - **value**: value from the stack input. - **current_value**: current value of the storage slot. - **original_value**: value of the storage slot before the current transaction. + static_gas = {gasPrices|sstore} - static_gas = {gasPrices|sstore} - - if value == current_value - dynamic_gas = {gasPrices|sstoreNoopGasEIP2200} - else if current_value == original_value - if original_value == 0 - dynamic_gas = {gasPrices|sstoreInitGasEIP2200} - else - dynamic_gas = {gasPrices|sstoreCleanGasEIP2200} - else - dynamic_gas = {gasPrices|sstoreDirtyGasEIP2200} + if value == current_value + dynamic_gas = {gasPrices|sstoreNoopGasEIP2200} + else if current_value == original_value + if original_value == 0 + dynamic_gas = {gasPrices|sstoreInitGasEIP2200} + else + dynamic_gas = {gasPrices|sstoreCleanGasEIP2200} + else + dynamic_gas = {gasPrices|sstoreDirtyGasEIP2200} ## Gas refunds diff --git a/docs/opcodes/55/petersburg.mdx b/docs/opcodes/55/petersburg.mdx index 4bcd44c8..d11d9aa9 100644 --- a/docs/opcodes/55/petersburg.mdx +++ b/docs/opcodes/55/petersburg.mdx @@ -1,6 +1,6 @@ ## Gas -The static cost is {gasPrices|sstore}. If the value is changed from zero to non-zero, then the dynamic gas is {gasPrices|sstoreSet}. Otherwise the dynamic gas is {gasPrices|sstoreReset}. +The static cost is {gasPrices|sstore}. If the value is changed from zero to non-zero, then the dynamic gas is {gasPrices|sstoreSet}. Otherwise the dynamic gas is {gasPrices|sstoreReset}. ## Gas refunds diff --git a/docs/opcodes/56.mdx b/docs/opcodes/56.mdx index 45a6db50..7eb371ef 100644 --- a/docs/opcodes/56.mdx +++ b/docs/opcodes/56.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Stack Memory Storage and Flow Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -22,6 +22,7 @@ The **JUMP** instruction alters the program counter, thus breaking the linear pa ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. - `Counter` offset is not a [JUMPDEST](/#5B). The error is generated even if the JUMP would not have been done. diff --git a/docs/opcodes/57.mdx b/docs/opcodes/57.mdx index 5bdc17cc..455c8b8d 100644 --- a/docs/opcodes/57.mdx +++ b/docs/opcodes/57.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Stack Memory Storage and Flow Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -23,6 +23,7 @@ The **JUMPI** instruction may alter the program counter, thus breaking the linea ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. - `Counter` offset is not a [JUMPDEST](/#5B). The error is generated only if the JUMP would have been done. diff --git a/docs/opcodes/58.mdx b/docs/opcodes/58.mdx index 56f8fceb..c7574ba2 100644 --- a/docs/opcodes/58.mdx +++ b/docs/opcodes/58.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Stack Memory Storage and Flow Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -20,5 +20,6 @@ The program counter (PC) is a byte offset in the deployed [code](/about). It ind ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/59.mdx b/docs/opcodes/59.mdx index ae516d5f..1d48d7c1 100644 --- a/docs/opcodes/59.mdx +++ b/docs/opcodes/59.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Stack Memory Storage and Flow Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -20,5 +20,6 @@ The [memory](/about) is always fully accessible. What this instruction tracks is ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/5A.mdx b/docs/opcodes/5A.mdx index 46408cac..fbc5191b 100644 --- a/docs/opcodes/5A.mdx +++ b/docs/opcodes/5A.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Stack Memory Storage and Flow Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack output @@ -16,5 +16,6 @@ group: Stack Memory Storage and Flow Operations ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/5F.mdx b/docs/opcodes/5F.mdx index 1cc768c2..a3dbcf44 100644 --- a/docs/opcodes/5F.mdx +++ b/docs/opcodes/5F.mdx @@ -3,7 +3,7 @@ fork: Shanghai group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,17 +15,18 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x5F` | +| \* | \* | +| -------- | ------- | +| **Code** | `0x5F` | | **Text** | `PUSH0` | -| * | Input | Output | -|--:|------:|-------:| -| 1 | | `0x00` | +| \* | Input | Output | +| --: | ----: | -----: | +| 1 | | `0x00` | ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/60.mdx b/docs/opcodes/60.mdx index 5a5798b2..0fcee838 100644 --- a/docs/opcodes/60.mdx +++ b/docs/opcodes/60.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x60FF6000` | +| \* | \* | +| -------- | ------------------- | +| **Code** | `0x60FF6000` | | **Text** | `PUSH1 FF PUSH1 00` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x00` | -| `2` | | `0xFF` | +| \* | Input | Output | +| --: | ----: | -----: | +| `1` | | `0x00` | +| `2` | | `0xFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='~xFF%5Cn~'~PUSH1%200%01~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/61.mdx b/docs/opcodes/61.mdx index f8a92d82..a534dc31 100644 --- a/docs/opcodes/61.mdx +++ b/docs/opcodes/61.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x61FFFF610000` | +| \* | \* | +| -------- | ----------------------- | +| **Code** | `0x61FFFF610000` | | **Text** | `PUSH2 FFFF PUSH2 0000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x0000` | -| `2` | | `0xFFFF` | +| \* | Input | Output | +| --: | ----: | -------: | +| `1` | | `0x0000` | +| `2` | | `0xFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='~xFFFF%5Cn~'~PUSH2%200%01~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/62.mdx b/docs/opcodes/62.mdx index c71d5042..a4024d12 100644 --- a/docs/opcodes/62.mdx +++ b/docs/opcodes/62.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x62FFFFFF62000000` | +| \* | \* | +| -------- | --------------------------- | +| **Code** | `0x62FFFFFF62000000` | | **Text** | `PUSH3 FFFFFF PUSH3 000000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x000000` | -| `2` | | `0xFFFFFF` | +| \* | Input | Output | +| --: | ----: | ---------: | +| `1` | | `0x000000` | +| `2` | | `0xFFFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='~xFFFFFF%5Cn~'~PUSH3%200%01~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/63.mdx b/docs/opcodes/63.mdx index 5094b3b1..9fd15382 100644 --- a/docs/opcodes/63.mdx +++ b/docs/opcodes/63.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x63FFFFFFFF6300000000` | +| \* | \* | +| -------- | ------------------------------- | +| **Code** | `0x63FFFFFFFF6300000000` | | **Text** | `PUSH4 FFFFFFFF PUSH4 00000000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x00000000` | -| `2` | | `0xFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | -----------: | +| `1` | | `0x00000000` | +| `2` | | `0xFFFFFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='~xFFFFFFFF%5Cn~'~PUSH4%200%01~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/64.mdx b/docs/opcodes/64.mdx index 7dee8c84..f4c3f639 100644 --- a/docs/opcodes/64.mdx +++ b/docs/opcodes/64.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x64FFFFFFFFFF640000000000` | +| \* | \* | +| -------- | ----------------------------------- | +| **Code** | `0x64FFFFFFFFFF640000000000` | | **Text** | `PUSH5 FFFFFFFFFF PUSH5 0000000000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x0000000000` | -| `2` | | `0xFFFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | -------------: | +| `1` | | `0x0000000000` | +| `2` | | `0xFFFFFFFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='~xFFFFFFFFFF%5Cn~'~PUSH5%200%01~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/65.mdx b/docs/opcodes/65.mdx index de7ca497..77bda5c8 100644 --- a/docs/opcodes/65.mdx +++ b/docs/opcodes/65.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x65FFFFFFFFFFFF65000000000000` | +| \* | \* | +| -------- | --------------------------------------- | +| **Code** | `0x65FFFFFFFFFFFF65000000000000` | | **Text** | `PUSH6 FFFFFFFFFFFF PUSH6 000000000000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x000000000000` | -| `2` | | `0xFFFFFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | ---------------: | +| `1` | | `0x000000000000` | +| `2` | | `0xFFFFFFFFFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='~xzzzz%5Cn~'~PUSH6%200zFFF%01z~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/66.mdx b/docs/opcodes/66.mdx index 157d5920..edcb1412 100644 --- a/docs/opcodes/66.mdx +++ b/docs/opcodes/66.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x66FFFFFFFFFFFFFF6600000000000000` | +| \* | \* | +| -------- | ------------------------------------------- | +| **Code** | `0x66FFFFFFFFFFFFFF6600000000000000` | | **Text** | `PUSH7 FFFFFFFFFFFFFF PUSH7 00000000000000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x00000000000000` | -| `2` | | `0xFFFFFFFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | -----------------: | +| `1` | | `0x00000000000000` | +| `2` | | `0xFFFFFFFFFFFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='~xzzzzzzz%5Cn~'~PUSH7%200zFF%01z~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/67.mdx b/docs/opcodes/67.mdx index 873af9a8..b1d9cd86 100644 --- a/docs/opcodes/67.mdx +++ b/docs/opcodes/67.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x67FFFFFFFFFFFFFFFF670000000000000000` | +| \* | \* | +| -------- | ----------------------------------------------- | +| **Code** | `0x67FFFFFFFFFFFFFFFF670000000000000000` | | **Text** | `PUSH8 FFFFFFFFFFFFFFFF PUSH8 0000000000000000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x0000000000000000` | -| `2` | | `0xFFFFFFFFFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | -------------------: | +| `1` | | `0x0000000000000000` | +| `2` | | `0xFFFFFFFFFFFFFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='zx~~~~%5Cnz'~FFFFzPUSH8%200%01z~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/68.mdx b/docs/opcodes/68.mdx index 4eb79a85..56478efe 100644 --- a/docs/opcodes/68.mdx +++ b/docs/opcodes/68.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x68FFFFFFFFFFFFFFFFFF68000000000000000000` | +| \* | \* | +| -------- | --------------------------------------------------- | +| **Code** | `0x68FFFFFFFFFFFFFFFFFF68000000000000000000` | | **Text** | `PUSH9 FFFFFFFFFFFFFFFFFF PUSH9 000000000000000000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x000000000000000000` | -| `2` | | `0xFFFFFFFFFFFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | ---------------------: | +| `1` | | `0x000000000000000000` | +| `2` | | `0xFFFFFFFFFFFFFFFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='zx~~~~~~%5Cnz'~FFFzPUSH9%200%01z~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/69.mdx b/docs/opcodes/69.mdx index 245b139f..f1cfbe97 100644 --- a/docs/opcodes/69.mdx +++ b/docs/opcodes/69.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x69FFFFFFFFFFFFFFFFFFFF6900000000000000000000` | +| \* | \* | +| -------- | --------------------------------------------------------- | +| **Code** | `0x69FFFFFFFFFFFFFFFFFFFF6900000000000000000000` | | **Text** | `PUSH10 FFFFFFFFFFFFFFFFFFFF PUSH10 00000000000000000000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x00000000000000000000` | -| `2` | | `0xFFFFFFFFFFFFFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | -----------------------: | +| `1` | | `0x00000000000000000000` | +| `2` | | `0xFFFFFFFFFFFFFFFFFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='zx~~~~~%5Cnz'~FFFFzPUSH10%200%01z~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/6A.mdx b/docs/opcodes/6A.mdx index 91fba386..40beeff1 100644 --- a/docs/opcodes/6A.mdx +++ b/docs/opcodes/6A.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x6AFFFFFFFFFFFFFFFFFFFFFF6A0000000000000000000000` | +| \* | \* | +| -------- | ------------------------------------------------------------- | +| **Code** | `0x6AFFFFFFFFFFFFFFFFFFFFFF6A0000000000000000000000` | | **Text** | `PUSH11 FFFFFFFFFFFFFFFFFFFFFF PUSH11 0000000000000000000000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x0000000000000000000000` | -| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | -------------------------: | +| `1` | | `0x0000000000000000000000` | +| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='zx~~~~~~~F%5Cnz'~FFFzPUSH11%200%01z~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/6B.mdx b/docs/opcodes/6B.mdx index f3106b68..99e6d6cf 100644 --- a/docs/opcodes/6B.mdx +++ b/docs/opcodes/6B.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x6BFFFFFFFFFFFFFFFFFFFFFFFF6B000000000000000000000000` | +| \* | \* | +| -------- | ----------------------------------------------------------------- | +| **Code** | `0x6BFFFFFFFFFFFFFFFFFFFFFFFF6B000000000000000000000000` | | **Text** | `PUSH12 FFFFFFFFFFFFFFFFFFFFFFFF PUSH12 000000000000000000000000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x000000000000000000000000` | -| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | ---------------------------: | +| `1` | | `0x000000000000000000000000` | +| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='zx~~~~~~%5Cnz'~FFFFzPUSH12%200%01z~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/6C.mdx b/docs/opcodes/6C.mdx index 8097bc7f..9a16af41 100644 --- a/docs/opcodes/6C.mdx +++ b/docs/opcodes/6C.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x6CFFFFFFFFFFFFFFFFFFFFFFFFFF6C00000000000000000000000000` | +| \* | \* | +| -------- | --------------------------------------------------------------------- | +| **Code** | `0x6CFFFFFFFFFFFFFFFFFFFFFFFFFF6C00000000000000000000000000` | | **Text** | `PUSH13 FFFFFFFFFFFFFFFFFFFFFFFFFF PUSH13 00000000000000000000000000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x00000000000000000000000000` | -| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | -----------------------------: | +| `1` | | `0x00000000000000000000000000` | +| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='zx~~~~~F%5Cnz'~FFFFFzPUSH13%200%01z~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/6D.mdx b/docs/opcodes/6D.mdx index 27b9597b..6fa44a16 100644 --- a/docs/opcodes/6D.mdx +++ b/docs/opcodes/6D.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x6DFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D0000000000000000000000000000` | +| \* | \* | +| -------- | ------------------------------------------------------------------------- | +| **Code** | `0x6DFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D0000000000000000000000000000` | | **Text** | `PUSH14 FFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH14 0000000000000000000000000000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x0000000000000000000000000000` | -| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | -------------------------------: | +| `1` | | `0x0000000000000000000000000000` | +| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='zx~~~~~~~%5Cnz'~FFFFzPUSH14%200%01z~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/6E.mdx b/docs/opcodes/6E.mdx index f5a6ffdf..cd89b596 100644 --- a/docs/opcodes/6E.mdx +++ b/docs/opcodes/6E.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x6EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E000000000000000000000000000000` | +| \* | \* | +| -------- | ----------------------------------------------------------------------------- | +| **Code** | `0x6EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E000000000000000000000000000000` | | **Text** | `PUSH15 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH15 000000000000000000000000000000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x000000000000000000000000000000` | -| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | ---------------------------------: | +| `1` | | `0x000000000000000000000000000000` | +| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='zx~~~~~~%5Cnz'~FFFFFzPUSH15%200%01z~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/6F.mdx b/docs/opcodes/6F.mdx index ca221132..f6d4a10b 100644 --- a/docs/opcodes/6F.mdx +++ b/docs/opcodes/6F.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F00000000000000000000000000000000` | +| \* | \* | +| -------- | --------------------------------------------------------------------------------- | +| **Code** | `0x6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F00000000000000000000000000000000` | | **Text** | `PUSH16 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH16 00000000000000000000000000000000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x00000000000000000000000000000000` | -| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | -----------------------------------: | +| `1` | | `0x00000000000000000000000000000000` | +| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='zxyyyy%5Cnz'~FFFFzPUSH16%200y~~%01yz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/70.mdx b/docs/opcodes/70.mdx index f645cc9b..53dd5026 100644 --- a/docs/opcodes/70.mdx +++ b/docs/opcodes/70.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF700000000000000000000000000000000000` | +| \* | \* | +| -------- | ------------------------------------------------------------------------------------- | +| **Code** | `0x70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF700000000000000000000000000000000000` | | **Text** | `PUSH17 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH17 0000000000000000000000000000000000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x0000000000000000000000000000000000` | -| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | -------------------------------------: | +| `1` | | `0x0000000000000000000000000000000000` | +| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='zxyyyyFF%5Cnz'~FFFFzPUSH17%200y~~%01yz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/71.mdx b/docs/opcodes/71.mdx index 2ac3a56f..f51cc654 100644 --- a/docs/opcodes/71.mdx +++ b/docs/opcodes/71.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x71FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71000000000000000000000000000000000000` | +| \* | \* | +| -------- | ----------------------------------------------------------------------------------------- | +| **Code** | `0x71FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71000000000000000000000000000000000000` | | **Text** | `PUSH18 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH18 000000000000000000000000000000000000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x000000000000000000000000000000000000` | -| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | ---------------------------------------: | +| `1` | | `0x000000000000000000000000000000000000` | +| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='zx~~~~~~%5Cnz'~FFFFFFzPUSH18%200%01z~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/72.mdx b/docs/opcodes/72.mdx index 8c2a105d..31ad51da 100644 --- a/docs/opcodes/72.mdx +++ b/docs/opcodes/72.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x72FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7200000000000000000000000000000000000000` | +| \* | \* | +| -------- | --------------------------------------------------------------------------------------------- | +| **Code** | `0x72FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7200000000000000000000000000000000000000` | | **Text** | `PUSH19 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH19 00000000000000000000000000000000000000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x00000000000000000000000000000000000000` | -| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | -----------------------------------------: | +| `1` | | `0x00000000000000000000000000000000000000` | +| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='zx~~~~~~y%5Cnz'~yyyzPUSH19%200yFF%01yz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/73.mdx b/docs/opcodes/73.mdx index 27a8ff97..34fbdc46 100644 --- a/docs/opcodes/73.mdx +++ b/docs/opcodes/73.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x73FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF730000000000000000000000000000000000000000` | +| \* | \* | +| -------- | ------------------------------------------------------------------------------------------------- | +| **Code** | `0x73FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF730000000000000000000000000000000000000000` | | **Text** | `PUSH20 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH20 0000000000000000000000000000000000000000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x0000000000000000000000000000000000000000` | -| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | -------------------------------------------: | +| `1` | | `0x0000000000000000000000000000000000000000` | +| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='zxyyyy%5Cnz'~FFFFFzPUSH20%200y~~%01yz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/74.mdx b/docs/opcodes/74.mdx index c51ef00c..66ba57c3 100644 --- a/docs/opcodes/74.mdx +++ b/docs/opcodes/74.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x74FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74000000000000000000000000000000000000000000` | +| \* | \* | +| -------- | ----------------------------------------------------------------------------------------------------- | +| **Code** | `0x74FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74000000000000000000000000000000000000000000` | | **Text** | `PUSH21 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH21 000000000000000000000000000000000000000000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x000000000000000000000000000000000000000000` | -| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | ---------------------------------------------: | +| `1` | | `0x000000000000000000000000000000000000000000` | +| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='zx~~~~~~~%5Cnz'~FFFFFFzPUSH21%200%01z~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/75.mdx b/docs/opcodes/75.mdx index 59f45f2f..5b1c4acb 100644 --- a/docs/opcodes/75.mdx +++ b/docs/opcodes/75.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x75FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7500000000000000000000000000000000000000000000` | +| \* | \* | +| -------- | --------------------------------------------------------------------------------------------------------- | +| **Code** | `0x75FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7500000000000000000000000000000000000000000000` | | **Text** | `PUSH22 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH22 00000000000000000000000000000000000000000000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x00000000000000000000000000000000000000000000` | -| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | -----------------------------------------------: | +| `1` | | `0x00000000000000000000000000000000000000000000` | +| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='zxyyyyy~%5Cnz'~FFFFzPUSH22%200y~~%01yz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/76.mdx b/docs/opcodes/76.mdx index cf3c8273..f279e8e7 100644 --- a/docs/opcodes/76.mdx +++ b/docs/opcodes/76.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x76FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF760000000000000000000000000000000000000000000000` | +| \* | \* | +| -------- | ------------------------------------------------------------------------------------------------------------- | +| **Code** | `0x76FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF760000000000000000000000000000000000000000000000` | | **Text** | `PUSH23 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH23 0000000000000000000000000000000000000000000000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x0000000000000000000000000000000000000000000000` | -| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | -------------------------------------------------: | +| `1` | | `0x0000000000000000000000000000000000000000000000` | +| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='zxyyyF%5Cnz'~FFFFFzPUSH23%200y~~~%01yz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/77.mdx b/docs/opcodes/77.mdx index e90023dd..bb64f227 100644 --- a/docs/opcodes/77.mdx +++ b/docs/opcodes/77.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x77FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77000000000000000000000000000000000000000000000000` | +| \* | \* | +| -------- | ----------------------------------------------------------------------------------------------------------------- | +| **Code** | `0x77FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77000000000000000000000000000000000000000000000000` | | **Text** | `PUSH24 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH24 000000000000000000000000000000000000000000000000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x000000000000000000000000000000000000000000000000` | -| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | ---------------------------------------------------: | +| `1` | | `0x000000000000000000000000000000000000000000000000` | +| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='zxyyyy%5Cnz'~FFFFFFzPUSH24%200y~~%01yz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/78.mdx b/docs/opcodes/78.mdx index 0e150164..7e319bba 100644 --- a/docs/opcodes/78.mdx +++ b/docs/opcodes/78.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x78FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7800000000000000000000000000000000000000000000000000` | +| \* | \* | +| -------- | --------------------------------------------------------------------------------------------------------------------- | +| **Code** | `0x78FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7800000000000000000000000000000000000000000000000000` | | **Text** | `PUSH25 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH25 00000000000000000000000000000000000000000000000000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x00000000000000000000000000000000000000000000000000` | -| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | -----------------------------------------------------: | +| `1` | | `0x00000000000000000000000000000000000000000000000000` | +| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | [Reprduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='zxyyyyy%5Cnz'~FFFFFzPUSH25%200y~~%01yz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/79.mdx b/docs/opcodes/79.mdx index 1e572ce5..dbc35a6e 100644 --- a/docs/opcodes/79.mdx +++ b/docs/opcodes/79.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x79FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF790000000000000000000000000000000000000000000000000000` | +| \* | \* | +| -------- | ------------------------------------------------------------------------------------------------------------------------- | +| **Code** | `0x79FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF790000000000000000000000000000000000000000000000000000` | | **Text** | `PUSH26 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH26 0000000000000000000000000000000000000000000000000000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x0000000000000000000000000000000000000000000000000000` | -| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | -------------------------------------------------------: | +| `1` | | `0x0000000000000000000000000000000000000000000000000000` | +| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='zxyyyy~%5Cnz'~FFFFzPUSH26%200y~~~%01yz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/7A.mdx b/docs/opcodes/7A.mdx index aece4c9c..b85b336e 100644 --- a/docs/opcodes/7A.mdx +++ b/docs/opcodes/7A.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x7AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A000000000000000000000000000000000000000000000000000000` | +| \* | \* | +| -------- | ----------------------------------------------------------------------------------------------------------------------------- | +| **Code** | `0x7AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A000000000000000000000000000000000000000000000000000000` | | **Text** | `PUSH27 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH27 000000000000000000000000000000000000000000000000000000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x000000000000000000000000000000000000000000000000000000` | -| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | ---------------------------------------------------------: | +| `1` | | `0x000000000000000000000000000000000000000000000000000000` | +| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='zxyyy%5Cnz'~FFFFFFzPUSH27%200y~~~%01yz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/7B.mdx b/docs/opcodes/7B.mdx index b61f1651..785f1a8f 100644 --- a/docs/opcodes/7B.mdx +++ b/docs/opcodes/7B.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x7BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B00000000000000000000000000000000000000000000000000000000` | +| \* | \* | +| -------- | --------------------------------------------------------------------------------------------------------------------------------- | +| **Code** | `0x7BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B00000000000000000000000000000000000000000000000000000000` | | **Text** | `PUSH28 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH28 00000000000000000000000000000000000000000000000000000000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x00000000000000000000000000000000000000000000000000000000` | -| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | -----------------------------------------------------------: | +| `1` | | `0x00000000000000000000000000000000000000000000000000000000` | +| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='zxyyyy%5Cnz'~FFFFFFFzPUSH28%200y~~%01yz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/7C.mdx b/docs/opcodes/7C.mdx index 5f173fe3..f32bb44b 100644 --- a/docs/opcodes/7C.mdx +++ b/docs/opcodes/7C.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x7CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C0000000000000000000000000000000000000000000000000000000000` | +| \* | \* | +| -------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| **Code** | `0x7CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C0000000000000000000000000000000000000000000000000000000000` | | **Text** | `PUSH29 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH29 0000000000000000000000000000000000000000000000000000000000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x0000000000000000000000000000000000000000000000000000000000` | -| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | -------------------------------------------------------------: | +| `1` | | `0x0000000000000000000000000000000000000000000000000000000000` | +| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='zxwwwwy%5Cnz'~yyyFzPUSH29%200yFFw~~%01wyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/7D.mdx b/docs/opcodes/7D.mdx index bd03a112..a43b9ee4 100644 --- a/docs/opcodes/7D.mdx +++ b/docs/opcodes/7D.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D000000000000000000000000000000000000000000000000000000000000` | +| \* | \* | +| -------- | ----------------------------------------------------------------------------------------------------------------------------------------- | +| **Code** | `0x7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D000000000000000000000000000000000000000000000000000000000000` | | **Text** | `PUSH30 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH30 000000000000000000000000000000000000000000000000000000000000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x000000000000000000000000000000000000000000000000000000000000` | -| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | ---------------------------------------------------------------: | +| `1` | | `0x000000000000000000000000000000000000000000000000000000000000` | +| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='zxyyyyy%5Cnz'~FFFFFFzPUSH30%200y~~%01yz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/7E.mdx b/docs/opcodes/7E.mdx index 7d6d1c4e..8da11dbc 100644 --- a/docs/opcodes/7E.mdx +++ b/docs/opcodes/7E.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E00000000000000000000000000000000000000000000000000000000000000` | +| \* | \* | +| -------- | --------------------------------------------------------------------------------------------------------------------------------------------- | +| **Code** | `0x7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E00000000000000000000000000000000000000000000000000000000000000` | | **Text** | `PUSH31 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH31 00000000000000000000000000000000000000000000000000000000000000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x00000000000000000000000000000000000000000000000000000000000000` | -| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | -----------------------------------------------------------------: | +| `1` | | `0x00000000000000000000000000000000000000000000000000000000000000` | +| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='zxyyyyyw%5Cnz'~wwwzPUSH31%200y~~wFF%01wyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/7F.mdx b/docs/opcodes/7F.mdx index b5b428bb..9f987f6c 100644 --- a/docs/opcodes/7F.mdx +++ b/docs/opcodes/7F.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Push Operations --- -*Index 1 is top of the stack.* +_Index 1 is top of the stack._ ## Notes @@ -15,20 +15,21 @@ The new value is put on top of the stack, incrementing all the other value indic ## Example -| * | * | -|---|---| -| **Code** | `0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F0000000000000000000000000000000000000000000000000000000000000000` | +| \* | \* | +| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Code** | `0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F0000000000000000000000000000000000000000000000000000000000000000` | | **Text** | `PUSH32 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0000000000000000000000000000000000000000000000000000000000000000` | -| * | Input | Output | -|--:|------:|-------:| -| `1` | | `0x0000000000000000000000000000000000000000000000000000000000000000` | -| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | +| \* | Input | Output | +| --: | ----: | -------------------------------------------------------------------: | +| `1` | | `0x0000000000000000000000000000000000000000000000000000000000000000` | +| `2` | | `0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='zxwwww%5Cnz'~yyyyzPUSH32%200yFFw~~%01wyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Stack overflow. diff --git a/docs/opcodes/80.mdx b/docs/opcodes/80.mdx index d04285e0..cfe6439d 100644 --- a/docs/opcodes/80.mdx +++ b/docs/opcodes/80.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Duplication Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -16,16 +16,17 @@ group: Duplication Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `1` | `1` | -| `2` | | `1` | +| \* | Input | Output | +| --: | ----: | -----: | +| `1` | `1` | `1` | +| `2` | | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='zSet%20styPUSH1%201~~zDuplicyDUP1'~%5Cnz%2F%2F%20yate~%01yz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. - Stack overflow. diff --git a/docs/opcodes/81.mdx b/docs/opcodes/81.mdx index 954870b1..1e63e6c2 100644 --- a/docs/opcodes/81.mdx +++ b/docs/opcodes/81.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Duplication Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -18,17 +18,18 @@ group: Duplication Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `0` | `1` | -| `2` | `1` | `0` | -| `3` | | `1` | +| \* | Input | Output | +| --: | ----: | -----: | +| `1` | `0` | `1` | +| `2` | `1` | `0` | +| `3` | | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='zSet%20statey1y0~~zDuplicate~DUP2'~%5Cnz%2F%2F%20y~PUSH1%20%01yz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. - Stack overflow. diff --git a/docs/opcodes/82.mdx b/docs/opcodes/82.mdx index b8c31864..80a04542 100644 --- a/docs/opcodes/82.mdx +++ b/docs/opcodes/82.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Duplication Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -20,18 +20,19 @@ group: Duplication Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `0` | `1` | -| `2` | `0` | `0` | -| `3` | `1` | `0` | -| `4` | | `1` | +| \* | Input | Output | +| --: | ----: | -----: | +| `1` | `0` | `1` | +| `2` | `0` | `0` | +| `3` | `1` | `0` | +| `4` | | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='ySet%20state~1~0~0zzyDuplicatezDUP3'~zPUSH1%20z%5Cny%2F%2F%20%01yz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. - Stack overflow. diff --git a/docs/opcodes/83.mdx b/docs/opcodes/83.mdx index ad153573..b796afd1 100644 --- a/docs/opcodes/83.mdx +++ b/docs/opcodes/83.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Duplication Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -22,19 +22,20 @@ group: Duplication Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `0` | `1` | -| `2` | `0` | `0` | -| `3` | `0` | `0` | -| `4` | `1` | `0` | -| `5` | | `1` | +| \* | Input | Output | +| --: | ----: | -----: | +| `1` | `0` | `1` | +| `2` | `0` | `0` | +| `3` | `0` | `0` | +| `4` | `1` | `0` | +| `5` | | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='ySet%20state~1~0~0~0zzyDuplicatezDUP4'~zPUSH1%20z%5Cny%2F%2F%20%01yz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. - Stack overflow. diff --git a/docs/opcodes/84.mdx b/docs/opcodes/84.mdx index c688635c..ff1a4e5f 100644 --- a/docs/opcodes/84.mdx +++ b/docs/opcodes/84.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Duplication Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -24,20 +24,21 @@ group: Duplication Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `0` | `1` | -| `2` | `0` | `0` | -| `3` | `0` | `0` | -| `4` | `0` | `0` | -| `5` | `1` | `0` | -| `6` | | `1` | +| \* | Input | Output | +| --: | ----: | -----: | +| `1` | `0` | `1` | +| `2` | `0` | `0` | +| `3` | `0` | `0` | +| `4` | `0` | `0` | +| `5` | `1` | `0` | +| `6` | | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='ySet%20state~1xxxxzzyDuplicatezDUP5'~zPUSH1%20z%5Cny%2F%2F%20x~0%01xyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. - Stack overflow. diff --git a/docs/opcodes/85.mdx b/docs/opcodes/85.mdx index 71944916..04a9dd2c 100644 --- a/docs/opcodes/85.mdx +++ b/docs/opcodes/85.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Duplication Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -26,21 +26,22 @@ group: Duplication Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `0` | `1` | -| `2` | `0` | `0` | -| `3` | `0` | `0` | -| `4` | `0` | `0` | -| `5` | `0` | `0` | -| `6` | `1` | `0` | -| `7` | | `1` | +| \* | Input | Output | +| --: | ----: | -----: | +| `1` | `0` | `1` | +| `2` | `0` | `0` | +| `3` | `0` | `0` | +| `4` | `0` | `0` | +| `5` | `0` | `0` | +| `6` | `1` | `0` | +| `7` | | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='ySet%20state~1xxxxxzzyDuplicatezDUP6'~zPUSH1%20z%5Cny%2F%2F%20x~0%01xyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. - Stack overflow. diff --git a/docs/opcodes/86.mdx b/docs/opcodes/86.mdx index 6c55f34c..6e0e8ad8 100644 --- a/docs/opcodes/86.mdx +++ b/docs/opcodes/86.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Duplication Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -28,22 +28,23 @@ group: Duplication Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `0` | `1` | -| `2` | `0` | `0` | -| `3` | `0` | `0` | -| `4` | `0` | `0` | -| `5` | `0` | `0` | -| `6` | `0` | `0` | -| `7` | `1` | `0` | -| `8` | | `1` | +| \* | Input | Output | +| --: | ----: | -----: | +| `1` | `0` | `1` | +| `2` | `0` | `0` | +| `3` | `0` | `0` | +| `4` | `0` | `0` | +| `5` | `0` | `0` | +| `6` | `0` | `0` | +| `7` | `1` | `0` | +| `8` | | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='ySet%20state~1xxxzzyDuplicatezDUP7'~zPUSH1%20z%5Cny%2F%2F%20x~0~0%01xyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. - Stack overflow. diff --git a/docs/opcodes/87.mdx b/docs/opcodes/87.mdx index fc33eda4..d07be68a 100644 --- a/docs/opcodes/87.mdx +++ b/docs/opcodes/87.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Duplication Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -30,23 +30,24 @@ group: Duplication Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `0` | `1` | -| `2` | `0` | `0` | -| `3` | `0` | `0` | -| `4` | `0` | `0` | -| `5` | `0` | `0` | -| `6` | `0` | `0` | -| `7` | `0` | `0` | -| `8` | `1` | `0` | -| `9` | | `1` | +| \* | Input | Output | +| --: | ----: | -----: | +| `1` | `0` | `1` | +| `2` | `0` | `0` | +| `3` | `0` | `0` | +| `4` | `0` | `0` | +| `5` | `0` | `0` | +| `6` | `0` | `0` | +| `7` | `0` | `0` | +| `8` | `1` | `0` | +| `9` | | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='ySet%20state~1xxxxxxxzzyDuplicatezDUP8'~zPUSH1%20z%5Cny%2F%2F%20x~0%01xyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. - Stack overflow. diff --git a/docs/opcodes/88.mdx b/docs/opcodes/88.mdx index ba8f864f..c091a093 100644 --- a/docs/opcodes/88.mdx +++ b/docs/opcodes/88.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Duplication Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -32,24 +32,25 @@ group: Duplication Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `0` | `1` | -| `2` | `0` | `0` | -| `3` | `0` | `0` | -| `4` | `0` | `0` | -| `5` | `0` | `0` | -| `6` | `0` | `0` | -| `7` | `0` | `0` | -| `8` | `0` | `0` | -| `9` | `1` | `0` | -| `10` | | `1` | +| \* | Input | Output | +| ---: | ----: | -----: | +| `1` | `0` | `1` | +| `2` | `0` | `0` | +| `3` | `0` | `0` | +| `4` | `0` | `0` | +| `5` | `0` | `0` | +| `6` | `0` | `0` | +| `7` | `0` | `0` | +| `8` | `0` | `0` | +| `9` | `1` | `0` | +| `10` | | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='xSet%20state~1yyyyzzxDuplicatezDUP9'~zPUSH1%20z%5Cny~0~0x%2F%2F%20%01xyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. - Stack overflow. diff --git a/docs/opcodes/89.mdx b/docs/opcodes/89.mdx index 38afad64..4b2b2f4e 100644 --- a/docs/opcodes/89.mdx +++ b/docs/opcodes/89.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Duplication Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -34,25 +34,26 @@ group: Duplication Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `0` | `1` | -| `2` | `0` | `0` | -| `3` | `0` | `0` | -| `4` | `0` | `0` | -| `5` | `0` | `0` | -| `6` | `0` | `0` | -| `7` | `0` | `0` | -| `8` | `0` | `0` | -| `9` | `0` | `0` | -| `10` | `1` | `0` | -| `11` | | `1` | +| \* | Input | Output | +| ---: | ----: | -----: | +| `1` | `0` | `1` | +| `2` | `0` | `0` | +| `3` | `0` | `0` | +| `4` | `0` | `0` | +| `5` | `0` | `0` | +| `6` | `0` | `0` | +| `7` | `0` | `0` | +| `8` | `0` | `0` | +| `9` | `0` | `0` | +| `10` | `1` | `0` | +| `11` | | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='xSet%20state~1zzzyyxDuplicateyDUP10'~yPUSH1%20z~0~0~0y%5Cnx%2F%2F%20%01xyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. - Stack overflow. diff --git a/docs/opcodes/8A.mdx b/docs/opcodes/8A.mdx index 35ffe14b..f597ed9a 100644 --- a/docs/opcodes/8A.mdx +++ b/docs/opcodes/8A.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Duplication Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -36,26 +36,27 @@ group: Duplication Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `0` | `1` | -| `2` | `0` | `0` | -| `3` | `0` | `0` | -| `4` | `0` | `0` | -| `5` | `0` | `0` | -| `6` | `0` | `0` | -| `7` | `0` | `0` | -| `8` | `0` | `0` | -| `9` | `0` | `0` | -| `10` | `0` | `0` | -| `11` | `1` | `0` | -| `12` | | `1` | +| \* | Input | Output | +| ---: | ----: | -----: | +| `1` | `0` | `1` | +| `2` | `0` | `0` | +| `3` | `0` | `0` | +| `4` | `0` | `0` | +| `5` | `0` | `0` | +| `6` | `0` | `0` | +| `7` | `0` | `0` | +| `8` | `0` | `0` | +| `9` | `0` | `0` | +| `10` | `0` | `0` | +| `11` | `1` | `0` | +| `12` | | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='xSet%20state~1zzzzzyyxDuplicateyDUP11'~yPUSH1%20z~0~0y%5Cnx%2F%2F%20%01xyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. - Stack overflow. diff --git a/docs/opcodes/8B.mdx b/docs/opcodes/8B.mdx index 8d3aa32e..f3603004 100644 --- a/docs/opcodes/8B.mdx +++ b/docs/opcodes/8B.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Duplication Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -38,27 +38,28 @@ group: Duplication Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `0` | `1` | -| `2` | `0` | `0` | -| `3` | `0` | `0` | -| `4` | `0` | `0` | -| `5` | `0` | `0` | -| `6` | `0` | `0` | -| `7` | `0` | `0` | -| `8` | `0` | `0` | -| `9` | `0` | `0` | -| `10` | `0` | `0` | -| `11` | `0` | `0` | -| `12` | `1` | `0` | -| `13` | | `1` | +| \* | Input | Output | +| ---: | ----: | -----: | +| `1` | `0` | `1` | +| `2` | `0` | `0` | +| `3` | `0` | `0` | +| `4` | `0` | `0` | +| `5` | `0` | `0` | +| `6` | `0` | `0` | +| `7` | `0` | `0` | +| `8` | `0` | `0` | +| `9` | `0` | `0` | +| `10` | `0` | `0` | +| `11` | `0` | `0` | +| `12` | `1` | `0` | +| `13` | | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='xSet%20state~1zzzzz~0yyxDuplicateyDUP12'~yPUSH1%20z~0~0y%5Cnx%2F%2F%20%01xyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. - Stack overflow. diff --git a/docs/opcodes/8C.mdx b/docs/opcodes/8C.mdx index fe55d33d..ea501d56 100644 --- a/docs/opcodes/8C.mdx +++ b/docs/opcodes/8C.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Duplication Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -40,28 +40,29 @@ group: Duplication Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `0` | `1` | -| `2` | `0` | `0` | -| `3` | `0` | `0` | -| `4` | `0` | `0` | -| `5` | `0` | `0` | -| `6` | `0` | `0` | -| `7` | `0` | `0` | -| `8` | `0` | `0` | -| `9` | `0` | `0` | -| `10` | `0` | `0` | -| `11` | `0` | `0` | -| `12` | `0` | `0` | -| `13` | `1` | `0` | -| `14` | | `1` | +| \* | Input | Output | +| ---: | ----: | -----: | +| `1` | `0` | `1` | +| `2` | `0` | `0` | +| `3` | `0` | `0` | +| `4` | `0` | `0` | +| `5` | `0` | `0` | +| `6` | `0` | `0` | +| `7` | `0` | `0` | +| `8` | `0` | `0` | +| `9` | `0` | `0` | +| `10` | `0` | `0` | +| `11` | `0` | `0` | +| `12` | `0` | `0` | +| `13` | `1` | `0` | +| `14` | | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='xSet%20state~1zzzzzzyyxDuplicateyDUP13'~yPUSH1%20z~0~0y%5Cnx%2F%2F%20%01xyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. - Stack overflow. diff --git a/docs/opcodes/8D.mdx b/docs/opcodes/8D.mdx index 2fab2e71..778d06e7 100644 --- a/docs/opcodes/8D.mdx +++ b/docs/opcodes/8D.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Duplication Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -42,29 +42,30 @@ group: Duplication Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `0` | `1` | -| `2` | `0` | `0` | -| `3` | `0` | `0` | -| `4` | `0` | `0` | -| `5` | `0` | `0` | -| `6` | `0` | `0` | -| `7` | `0` | `0` | -| `8` | `0` | `0` | -| `9` | `0` | `0` | -| `10` | `0` | `0` | -| `11` | `0` | `0` | -| `12` | `0` | `0` | -| `13` | `0` | `0` | -| `14` | `1` | `0` | -| `15` | | `1` | +| \* | Input | Output | +| ---: | ----: | -----: | +| `1` | `0` | `1` | +| `2` | `0` | `0` | +| `3` | `0` | `0` | +| `4` | `0` | `0` | +| `5` | `0` | `0` | +| `6` | `0` | `0` | +| `7` | `0` | `0` | +| `8` | `0` | `0` | +| `9` | `0` | `0` | +| `10` | `0` | `0` | +| `11` | `0` | `0` | +| `12` | `0` | `0` | +| `13` | `0` | `0` | +| `14` | `1` | `0` | +| `15` | | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='ySet%20statex1wwww~zzyDuplicatezDUP14'~x0z%5Cny%2F%2F%20xzPUSH1%20w~~~%01wxyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. - Stack overflow. diff --git a/docs/opcodes/8E.mdx b/docs/opcodes/8E.mdx index e97c6801..b8357983 100644 --- a/docs/opcodes/8E.mdx +++ b/docs/opcodes/8E.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Duplication Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -44,30 +44,31 @@ group: Duplication Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `0` | `1` | -| `2` | `0` | `0` | -| `3` | `0` | `0` | -| `4` | `0` | `0` | -| `5` | `0` | `0` | -| `6` | `0` | `0` | -| `7` | `0` | `0` | -| `8` | `0` | `0` | -| `9` | `0` | `0` | -| `10` | `0` | `0` | -| `11` | `0` | `0` | -| `12` | `0` | `0` | -| `13` | `0` | `0` | -| `14` | `0` | `0` | -| `15` | `1` | `0` | -| `16` | | `1` | +| \* | Input | Output | +| ---: | ----: | -----: | +| `1` | `0` | `1` | +| `2` | `0` | `0` | +| `3` | `0` | `0` | +| `4` | `0` | `0` | +| `5` | `0` | `0` | +| `6` | `0` | `0` | +| `7` | `0` | `0` | +| `8` | `0` | `0` | +| `9` | `0` | `0` | +| `10` | `0` | `0` | +| `11` | `0` | `0` | +| `12` | `0` | `0` | +| `13` | `0` | `0` | +| `14` | `0` | `0` | +| `15` | `1` | `0` | +| `16` | | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='ySet%20statex1wwwwwwwzzyDuplicatezDUP15'~x0z%5Cny%2F%2F%20xzPUSH1%20w~~%01wxyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. - Stack overflow. diff --git a/docs/opcodes/8F.mdx b/docs/opcodes/8F.mdx index df47f387..3c0324bf 100644 --- a/docs/opcodes/8F.mdx +++ b/docs/opcodes/8F.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Duplication Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -46,31 +46,32 @@ group: Duplication Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `0` | `1` | -| `2` | `0` | `0` | -| `3` | `0` | `0` | -| `4` | `0` | `0` | -| `5` | `0` | `0` | -| `6` | `0` | `0` | -| `7` | `0` | `0` | -| `8` | `0` | `0` | -| `9` | `0` | `0` | -| `10` | `0` | `0` | -| `11` | `0` | `0` | -| `12` | `0` | `0` | -| `13` | `0` | `0` | -| `14` | `0` | `0` | -| `15` | `0` | `0` | -| `16` | `1` | `0` | -| `17` | | `1` | +| \* | Input | Output | +| ---: | ----: | -----: | +| `1` | `0` | `1` | +| `2` | `0` | `0` | +| `3` | `0` | `0` | +| `4` | `0` | `0` | +| `5` | `0` | `0` | +| `6` | `0` | `0` | +| `7` | `0` | `0` | +| `8` | `0` | `0` | +| `9` | `0` | `0` | +| `10` | `0` | `0` | +| `11` | `0` | `0` | +| `12` | `0` | `0` | +| `13` | `0` | `0` | +| `14` | `0` | `0` | +| `15` | `0` | `0` | +| `16` | `1` | `0` | +| `17` | | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='ySet%20statex1wwwwwzzyDuplicatezDUP16'~x0z%5Cny%2F%2F%20xzPUSH1%20w~~~%01wxyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. - Stack overflow. diff --git a/docs/opcodes/90.mdx b/docs/opcodes/90.mdx index fb507ffa..4d09382f 100644 --- a/docs/opcodes/90.mdx +++ b/docs/opcodes/90.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Exchange Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -17,15 +17,16 @@ group: Exchange Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `1` | `2` | -| `2` | `2` | `1` | +| \* | Input | Output | +| --: | ----: | -----: | +| `1` | `1` | `2` | +| `2` | `2` | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='zet%20statey2y1~~zwap~SWAP1'~%5Cnz%2F%2F%20Sy~PUSH1%20%01yz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/91.mdx b/docs/opcodes/91.mdx index ad75fe04..0b522fa9 100644 --- a/docs/opcodes/91.mdx +++ b/docs/opcodes/91.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Exchange Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -19,16 +19,17 @@ group: Exchange Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `1` | `2` | -| `2` | `0` | `0` | -| `3` | `2` | `1` | +| \* | Input | Output | +| --: | ----: | -----: | +| `1` | `1` | `2` | +| `2` | `0` | `0` | +| `3` | `2` | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='yet%20state~2~0~1zzywapzSWAP2'~zPUSH1%20z%5Cny%2F%2F%20S%01yz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/92.mdx b/docs/opcodes/92.mdx index c4c542b3..7c13cf79 100644 --- a/docs/opcodes/92.mdx +++ b/docs/opcodes/92.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Exchange Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -21,17 +21,18 @@ group: Exchange Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `1` | `2` | -| `2` | `0` | `0` | -| `3` | `0` | `0` | -| `4` | `2` | `1` | +| \* | Input | Output | +| --: | ----: | -----: | +| `1` | `1` | `2` | +| `2` | `0` | `0` | +| `3` | `0` | `0` | +| `4` | `2` | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='yet%20state~2~0~0~1zzywapzSWAP3'~zPUSH1%20z%5Cny%2F%2F%20S%01yz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/93.mdx b/docs/opcodes/93.mdx index 6a53b5a1..17b5ef4b 100644 --- a/docs/opcodes/93.mdx +++ b/docs/opcodes/93.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Exchange Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -23,18 +23,19 @@ group: Exchange Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `1` | `2` | -| `2` | `0` | `0` | -| `3` | `0` | `0` | -| `4` | `0` | `0` | -| `5` | `2` | `1` | +| \* | Input | Output | +| --: | ----: | -----: | +| `1` | `1` | `2` | +| `2` | `0` | `0` | +| `3` | `0` | `0` | +| `4` | `0` | `0` | +| `5` | `2` | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='yet%20state~2~0~0~0~1zzywapzSWAP4'~zPUSH1%20z%5Cny%2F%2F%20S%01yz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/94.mdx b/docs/opcodes/94.mdx index 3dd5c887..9bf1a7fe 100644 --- a/docs/opcodes/94.mdx +++ b/docs/opcodes/94.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Exchange Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -25,19 +25,20 @@ group: Exchange Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `1` | `2` | -| `2` | `0` | `0` | -| `3` | `0` | `0` | -| `4` | `0` | `0` | -| `5` | `0` | `0` | -| `6` | `2` | `1` | +| \* | Input | Output | +| --: | ----: | -----: | +| `1` | `1` | `2` | +| `2` | `0` | `0` | +| `3` | `0` | `0` | +| `4` | `0` | `0` | +| `5` | `0` | `0` | +| `6` | `2` | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='yet%20state~2xxxx~1zzywapzSWAP5'~zPUSH1%20z%5Cny%2F%2F%20Sx~0%01xyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/95.mdx b/docs/opcodes/95.mdx index e241fa2a..d974bd14 100644 --- a/docs/opcodes/95.mdx +++ b/docs/opcodes/95.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Exchange Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -27,20 +27,21 @@ group: Exchange Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `1` | `2` | -| `2` | `0` | `0` | -| `3` | `0` | `0` | -| `4` | `0` | `0` | -| `5` | `0` | `0` | -| `6` | `0` | `0` | -| `7` | `2` | `1` | +| \* | Input | Output | +| --: | ----: | -----: | +| `1` | `1` | `2` | +| `2` | `0` | `0` | +| `3` | `0` | `0` | +| `4` | `0` | `0` | +| `5` | `0` | `0` | +| `6` | `0` | `0` | +| `7` | `2` | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='yet%20state~2xxxxx~1zzywapzSWAP6'~zPUSH1%20z%5Cny%2F%2F%20Sx~0%01xyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/96.mdx b/docs/opcodes/96.mdx index ae1e5b6b..7f52131a 100644 --- a/docs/opcodes/96.mdx +++ b/docs/opcodes/96.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Exchange Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -29,21 +29,22 @@ group: Exchange Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `1` | `2` | -| `2` | `0` | `0` | -| `3` | `0` | `0` | -| `4` | `0` | `0` | -| `5` | `0` | `0` | -| `6` | `0` | `0` | -| `7` | `0` | `0` | -| `8` | `2` | `1` | +| \* | Input | Output | +| --: | ----: | -----: | +| `1` | `1` | `2` | +| `2` | `0` | `0` | +| `3` | `0` | `0` | +| `4` | `0` | `0` | +| `5` | `0` | `0` | +| `6` | `0` | `0` | +| `7` | `0` | `0` | +| `8` | `2` | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='yet%20state~2xxx~1zzywapzSWAP7'~zPUSH1%20z%5Cny%2F%2F%20Sx~0~0%01xyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/97.mdx b/docs/opcodes/97.mdx index 4347268c..9f675fa2 100644 --- a/docs/opcodes/97.mdx +++ b/docs/opcodes/97.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Exchange Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -31,22 +31,23 @@ group: Exchange Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `1` | `2` | -| `2` | `0` | `0` | -| `3` | `0` | `0` | -| `4` | `0` | `0` | -| `5` | `0` | `0` | -| `6` | `0` | `0` | -| `7` | `0` | `0` | -| `8` | `0` | `0` | -| `9` | `2` | `1` | +| \* | Input | Output | +| --: | ----: | -----: | +| `1` | `1` | `2` | +| `2` | `0` | `0` | +| `3` | `0` | `0` | +| `4` | `0` | `0` | +| `5` | `0` | `0` | +| `6` | `0` | `0` | +| `7` | `0` | `0` | +| `8` | `0` | `0` | +| `9` | `2` | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='yet%20state~2xxxxxxx~1zzywapzSWAP8'~zPUSH1%20z%5Cny%2F%2F%20Sx~0%01xyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/98.mdx b/docs/opcodes/98.mdx index e0384ee0..446bd913 100644 --- a/docs/opcodes/98.mdx +++ b/docs/opcodes/98.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Exchange Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -33,23 +33,24 @@ group: Exchange Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `1` | `2` | -| `2` | `0` | `0` | -| `3` | `0` | `0` | -| `4` | `0` | `0` | -| `5` | `0` | `0` | -| `6` | `0` | `0` | -| `7` | `0` | `0` | -| `8` | `0` | `0` | -| `9` | `0` | `0` | -| `10` | `2` | `1` | +| \* | Input | Output | +| ---: | ----: | -----: | +| `1` | `1` | `2` | +| `2` | `0` | `0` | +| `3` | `0` | `0` | +| `4` | `0` | `0` | +| `5` | `0` | `0` | +| `6` | `0` | `0` | +| `7` | `0` | `0` | +| `8` | `0` | `0` | +| `9` | `0` | `0` | +| `10` | `2` | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='yet%20state~2xxxx~1zzywapzSWAP9'~zPUSH1%20z%5Cny%2F%2F%20Sx~0~0%01xyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/99.mdx b/docs/opcodes/99.mdx index 98d6013e..5787218f 100644 --- a/docs/opcodes/99.mdx +++ b/docs/opcodes/99.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Exchange Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -35,24 +35,25 @@ group: Exchange Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `1` | `2` | -| `2` | `0` | `0` | -| `3` | `0` | `0` | -| `4` | `0` | `0` | -| `5` | `0` | `0` | -| `6` | `0` | `0` | -| `7` | `0` | `0` | -| `8` | `0` | `0` | -| `9` | `0` | `0` | -| `10` | `0` | `0` | -| `11` | `2` | `1` | +| \* | Input | Output | +| ---: | ----: | -----: | +| `1` | `1` | `2` | +| `2` | `0` | `0` | +| `3` | `0` | `0` | +| `4` | `0` | `0` | +| `5` | `0` | `0` | +| `6` | `0` | `0` | +| `7` | `0` | `0` | +| `8` | `0` | `0` | +| `9` | `0` | `0` | +| `10` | `0` | `0` | +| `11` | `2` | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='xet%20state~2zzz~1yyxwapySWAP10'~yPUSH1%20z~0~0~0y%5Cnx%2F%2F%20S%01xyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/9A.mdx b/docs/opcodes/9A.mdx index d2b764b5..9b4c99fd 100644 --- a/docs/opcodes/9A.mdx +++ b/docs/opcodes/9A.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Exchange Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -37,25 +37,26 @@ group: Exchange Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `1` | `2` | -| `2` | `0` | `0` | -| `3` | `0` | `0` | -| `4` | `0` | `0` | -| `5` | `0` | `0` | -| `6` | `0` | `0` | -| `7` | `0` | `0` | -| `8` | `0` | `0` | -| `9` | `0` | `0` | -| `10` | `0` | `0` | -| `11` | `0` | `0` | -| `12` | `2` | `1` | +| \* | Input | Output | +| ---: | ----: | -----: | +| `1` | `1` | `2` | +| `2` | `0` | `0` | +| `3` | `0` | `0` | +| `4` | `0` | `0` | +| `5` | `0` | `0` | +| `6` | `0` | `0` | +| `7` | `0` | `0` | +| `8` | `0` | `0` | +| `9` | `0` | `0` | +| `10` | `0` | `0` | +| `11` | `0` | `0` | +| `12` | `2` | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='xet%20state~2zzzzz~1yyxwapySWAP11'~yPUSH1%20z~0~0y%5Cnx%2F%2F%20S%01xyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/9B.mdx b/docs/opcodes/9B.mdx index cee1fed6..b1bb81c7 100644 --- a/docs/opcodes/9B.mdx +++ b/docs/opcodes/9B.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Exchange Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -39,26 +39,27 @@ group: Exchange Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `1` | `2` | -| `2` | `0` | `0` | -| `3` | `0` | `0` | -| `4` | `0` | `0` | -| `5` | `0` | `0` | -| `6` | `0` | `0` | -| `7` | `0` | `0` | -| `8` | `0` | `0` | -| `9` | `0` | `0` | -| `10` | `0` | `0` | -| `11` | `0` | `0` | -| `12` | `0` | `0` | -| `13` | `2` | `1` | +| \* | Input | Output | +| ---: | ----: | -----: | +| `1` | `1` | `2` | +| `2` | `0` | `0` | +| `3` | `0` | `0` | +| `4` | `0` | `0` | +| `5` | `0` | `0` | +| `6` | `0` | `0` | +| `7` | `0` | `0` | +| `8` | `0` | `0` | +| `9` | `0` | `0` | +| `10` | `0` | `0` | +| `11` | `0` | `0` | +| `12` | `0` | `0` | +| `13` | `2` | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='xet%20state~2zzzzv1yyxwapySWAP12'~yPUSH1%20v0y%5Cnx%2F%2F%20Svz~0~%01vxyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/9C.mdx b/docs/opcodes/9C.mdx index 50e39ebc..74942606 100644 --- a/docs/opcodes/9C.mdx +++ b/docs/opcodes/9C.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Exchange Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -41,27 +41,28 @@ group: Exchange Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `1` | `2` | -| `2` | `0` | `0` | -| `3` | `0` | `0` | -| `4` | `0` | `0` | -| `5` | `0` | `0` | -| `6` | `0` | `0` | -| `7` | `0` | `0` | -| `8` | `0` | `0` | -| `9` | `0` | `0` | -| `10` | `0` | `0` | -| `11` | `0` | `0` | -| `12` | `0` | `0` | -| `13` | `0` | `0` | -| `14` | `2` | `1` | +| \* | Input | Output | +| ---: | ----: | -----: | +| `1` | `1` | `2` | +| `2` | `0` | `0` | +| `3` | `0` | `0` | +| `4` | `0` | `0` | +| `5` | `0` | `0` | +| `6` | `0` | `0` | +| `7` | `0` | `0` | +| `8` | `0` | `0` | +| `9` | `0` | `0` | +| `10` | `0` | `0` | +| `11` | `0` | `0` | +| `12` | `0` | `0` | +| `13` | `0` | `0` | +| `14` | `2` | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='xet%20state~2zzzzzz~1yyxwapySWAP13'~yPUSH1%20z~0~0y%5Cnx%2F%2F%20S%01xyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/9D.mdx b/docs/opcodes/9D.mdx index c10fdafb..34a26daa 100644 --- a/docs/opcodes/9D.mdx +++ b/docs/opcodes/9D.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Exchange Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -43,28 +43,29 @@ group: Exchange Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `1` | `2` | -| `2` | `0` | `0` | -| `3` | `0` | `0` | -| `4` | `0` | `0` | -| `5` | `0` | `0` | -| `6` | `0` | `0` | -| `7` | `0` | `0` | -| `8` | `0` | `0` | -| `9` | `0` | `0` | -| `10` | `0` | `0` | -| `11` | `0` | `0` | -| `12` | `0` | `0` | -| `13` | `0` | `0` | -| `14` | `0` | `0` | -| `15` | `2` | `1` | +| \* | Input | Output | +| ---: | ----: | -----: | +| `1` | `1` | `2` | +| `2` | `0` | `0` | +| `3` | `0` | `0` | +| `4` | `0` | `0` | +| `5` | `0` | `0` | +| `6` | `0` | `0` | +| `7` | `0` | `0` | +| `8` | `0` | `0` | +| `9` | `0` | `0` | +| `10` | `0` | `0` | +| `11` | `0` | `0` | +| `12` | `0` | `0` | +| `13` | `0` | `0` | +| `14` | `0` | `0` | +| `15` | `2` | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='xet%20state~2zzzzzv1yyxwapySWAP14'~yPUSH1%20v0y%5Cnx%2F%2F%20Svz~0~%01vxyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/9E.mdx b/docs/opcodes/9E.mdx index a8a3eff6..8ea2956e 100644 --- a/docs/opcodes/9E.mdx +++ b/docs/opcodes/9E.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Exchange Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -45,29 +45,30 @@ group: Exchange Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `1` | `2` | -| `2` | `0` | `0` | -| `3` | `0` | `0` | -| `4` | `0` | `0` | -| `5` | `0` | `0` | -| `6` | `0` | `0` | -| `7` | `0` | `0` | -| `8` | `0` | `0` | -| `9` | `0` | `0` | -| `10` | `0` | `0` | -| `11` | `0` | `0` | -| `12` | `0` | `0` | -| `13` | `0` | `0` | -| `14` | `0` | `0` | -| `15` | `0` | `0` | -| `16` | `2` | `1` | +| \* | Input | Output | +| ---: | ----: | -----: | +| `1` | `1` | `2` | +| `2` | `0` | `0` | +| `3` | `0` | `0` | +| `4` | `0` | `0` | +| `5` | `0` | `0` | +| `6` | `0` | `0` | +| `7` | `0` | `0` | +| `8` | `0` | `0` | +| `9` | `0` | `0` | +| `10` | `0` | `0` | +| `11` | `0` | `0` | +| `12` | `0` | `0` | +| `13` | `0` | `0` | +| `14` | `0` | `0` | +| `15` | `0` | `0` | +| `16` | `2` | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='xet%20state~2zzzzzzz~1yyxwapySWAP15'~yPUSH1%20z~0~0y%5Cnx%2F%2F%20S%01xyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/9F.mdx b/docs/opcodes/9F.mdx index b35d73c9..69e8ea55 100644 --- a/docs/opcodes/9F.mdx +++ b/docs/opcodes/9F.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Exchange Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Stack input @@ -47,30 +47,31 @@ group: Exchange Operations ## Example -| * | Input | Output | -|--:|------:|-------:| -| `1` | `1` | `2` | -| `2` | `0` | `0` | -| `3` | `0` | `0` | -| `4` | `0` | `0` | -| `5` | `0` | `0` | -| `6` | `0` | `0` | -| `7` | `0` | `0` | -| `8` | `0` | `0` | -| `9` | `0` | `0` | -| `10` | `0` | `0` | -| `11` | `0` | `0` | -| `12` | `0` | `0` | -| `13` | `0` | `0` | -| `14` | `0` | `0` | -| `15` | `0` | `0` | -| `16` | `0` | `0` | -| `17` | `2` | `1` | +| \* | Input | Output | +| ---: | ----: | -----: | +| `1` | `1` | `2` | +| `2` | `0` | `0` | +| `3` | `0` | `0` | +| `4` | `0` | `0` | +| `5` | `0` | `0` | +| `6` | `0` | `0` | +| `7` | `0` | `0` | +| `8` | `0` | `0` | +| `9` | `0` | `0` | +| `10` | `0` | `0` | +| `11` | `0` | `0` | +| `12` | `0` | `0` | +| `13` | `0` | `0` | +| `14` | `0` | `0` | +| `15` | `0` | `0` | +| `16` | `0` | `0` | +| `17` | `2` | `1` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='xet%20state~2zzzzz~1yyxwapySWAP16'~yPUSH1%20z~0~0~0y%5Cnx%2F%2F%20S%01xyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/A0.mdx b/docs/opcodes/A0.mdx index e65f1ed7..1475f94e 100644 --- a/docs/opcodes/A0.mdx +++ b/docs/opcodes/A0.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Logging Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -17,6 +17,7 @@ This instruction has no effect on the EVM state. See [here](https://ethereum.org ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. - The current execution context is from a [STATICCALL](/#FA) (since Byzantium fork). diff --git a/docs/opcodes/A1.mdx b/docs/opcodes/A1.mdx index f5d4bf9f..b14007c9 100644 --- a/docs/opcodes/A1.mdx +++ b/docs/opcodes/A1.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Logging Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -18,6 +18,7 @@ This instruction has no effect on the EVM state. See [here](https://ethereum.org ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. - The current execution context is from a [STATICCALL](/#FA) (since Byzantium fork). diff --git a/docs/opcodes/A2.mdx b/docs/opcodes/A2.mdx index 40912a8d..f404b170 100644 --- a/docs/opcodes/A2.mdx +++ b/docs/opcodes/A2.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Logging Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -19,6 +19,7 @@ This instruction has no effect on the EVM state. See [here](https://ethereum.org ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. - The current execution context is from a [STATICCALL](/#FA) (since Byzantium fork). diff --git a/docs/opcodes/A3.mdx b/docs/opcodes/A3.mdx index 894d3f26..2c7098f3 100644 --- a/docs/opcodes/A3.mdx +++ b/docs/opcodes/A3.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Logging Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -20,6 +20,7 @@ This instruction has no effect on the EVM state. See [here](https://ethereum.org ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. - The current execution context is from a [STATICCALL](/#FA) (since Byzantium fork). diff --git a/docs/opcodes/A4.mdx b/docs/opcodes/A4.mdx index fbadea58..d17017f1 100644 --- a/docs/opcodes/A4.mdx +++ b/docs/opcodes/A4.mdx @@ -3,7 +3,7 @@ fork: Frontier group: Logging Operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -21,6 +21,7 @@ This instruction has no effect on the EVM state. See [here](https://ethereum.org ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. - The current execution context is from a [STATICCALL](/#FA) (since Byzantium fork). diff --git a/docs/opcodes/F0.mdx b/docs/opcodes/F0.mdx index 181f4631..aa1c13fa 100644 --- a/docs/opcodes/F0.mdx +++ b/docs/opcodes/F0.mdx @@ -45,4 +45,4 @@ The state changes done by the current context are [reverted](#FD) in those cases - Not enough gas. - Not enough values on the stack. - The current execution context is from a [STATICCALL](/#FA) (since Byzantium fork). -- `size` is greater than the chain's maximum initcode size (since Shanghai fork). \ No newline at end of file +- `size` is greater than the chain's maximum initcode size (since Shanghai fork). diff --git a/docs/opcodes/F1.mdx b/docs/opcodes/F1.mdx index 38bd2e4e..ac689d14 100644 --- a/docs/opcodes/F1.mdx +++ b/docs/opcodes/F1.mdx @@ -3,7 +3,7 @@ fork: Frontier group: System operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -36,6 +36,7 @@ If the caller doesn't have enough balance to send the [value](/#34), the call fa ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. - The current execution context is from a [STATICCALL](/#FA) and the [value](/#34) (stack index 2) is not 0 (since Byzantium fork). diff --git a/docs/opcodes/F1/berlin.mdx b/docs/opcodes/F1/berlin.mdx index ded935a8..df7b0804 100644 --- a/docs/opcodes/F1/berlin.mdx +++ b/docs/opcodes/F1/berlin.mdx @@ -6,7 +6,8 @@ The memory expansion cost explanation can be found [here](/about). The different costs are: - - `code_execution_cost` is the cost of the called code execution (limited by the `gas` parameter). - - If `address` is warm, then `address_access_cost` is {gasPrices|warmstorageread}, otherwise it is {gasPrices|coldaccountaccess}. See section [access sets](/about). - - If `value` is not 0, then `positive_value_cost` is {gasPrices|callValueTransfer}. In this case there is also a call stipend that is given to make sure that a basic fallback function can be called. {gasPrices|callStipend} is thus removed from the cost, and also added to the `gas` input. - - If `value` is not 0 and the `address` given points to an empty account, then `value_to_empty_account_cost` is {gasPrices|callNewAccount}. An account is empty if its balance is 0, its nonce is 0 and it has no code. + +- `code_execution_cost` is the cost of the called code execution (limited by the `gas` parameter). +- If `address` is warm, then `address_access_cost` is {gasPrices|warmstorageread}, otherwise it is {gasPrices|coldaccountaccess}. See section [access sets](/about). +- If `value` is not 0, then `positive_value_cost` is {gasPrices|callValueTransfer}. In this case there is also a call stipend that is given to make sure that a basic fallback function can be called. {gasPrices|callStipend} is thus removed from the cost, and also added to the `gas` input. +- If `value` is not 0 and the `address` given points to an empty account, then `value_to_empty_account_cost` is {gasPrices|callNewAccount}. An account is empty if its balance is 0, its nonce is 0 and it has no code. diff --git a/docs/opcodes/F1/homestead.mdx b/docs/opcodes/F1/homestead.mdx index 893bcb61..72cd2d43 100644 --- a/docs/opcodes/F1/homestead.mdx +++ b/docs/opcodes/F1/homestead.mdx @@ -6,6 +6,7 @@ The memory expansion cost explanation can be found [here](/about). The different costs are: - - `code_execution_cost` is the cost of the called code execution (limited by the `gas` parameter). - - If `value` is not 0, then `positive_value_cost` is {gasPrices|callValueTransfer}. In this case there is also a call stipend that is given to make sure that a basic fallback function can be called. {gasPrices|callStipend} is thus removed from the cost, and also added to the `gas` input. - - If no account exists at the given `address`, then `empty_account_cost` is {gasPrices|callNewAccount}. + +- `code_execution_cost` is the cost of the called code execution (limited by the `gas` parameter). +- If `value` is not 0, then `positive_value_cost` is {gasPrices|callValueTransfer}. In this case there is also a call stipend that is given to make sure that a basic fallback function can be called. {gasPrices|callStipend} is thus removed from the cost, and also added to the `gas` input. +- If no account exists at the given `address`, then `empty_account_cost` is {gasPrices|callNewAccount}. diff --git a/docs/opcodes/F1/spuriousDragon.mdx b/docs/opcodes/F1/spuriousDragon.mdx index 9c8927a6..c35770f4 100644 --- a/docs/opcodes/F1/spuriousDragon.mdx +++ b/docs/opcodes/F1/spuriousDragon.mdx @@ -6,6 +6,7 @@ The memory expansion cost explanation can be found [here](/about). The different costs are: - - `code_execution_cost` is the cost of the called code execution (limited by the `gas` parameter). - - If `value` is not 0, then `positive_value_cost` is {gasPrices|callValueTransfer}. In this case there is also a call stipend that is given to make sure that a basic fallback function can be called. {gasPrices|callStipend} is thus removed from the cost, and also added to the `gas` input. - - If `value` is not 0 and the `address` given points to an empty account, then `value_to_empty_account_cost` is {gasPrices|callNewAccount}. An account is empty if its balance is 0, its nonce is 0 and it has no code. + +- `code_execution_cost` is the cost of the called code execution (limited by the `gas` parameter). +- If `value` is not 0, then `positive_value_cost` is {gasPrices|callValueTransfer}. In this case there is also a call stipend that is given to make sure that a basic fallback function can be called. {gasPrices|callStipend} is thus removed from the cost, and also added to the `gas` input. +- If `value` is not 0 and the `address` given points to an empty account, then `value_to_empty_account_cost` is {gasPrices|callNewAccount}. An account is empty if its balance is 0, its nonce is 0 and it has no code. diff --git a/docs/opcodes/F2.mdx b/docs/opcodes/F2.mdx index 3a4f27ac..938cc129 100644 --- a/docs/opcodes/F2.mdx +++ b/docs/opcodes/F2.mdx @@ -3,7 +3,7 @@ fork: Frontier group: System operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -36,6 +36,7 @@ If the caller doesn't have enough balance to send the [value](/#34), the call fa ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. - The current execution context is from a [STATICCALL](/#FA) and the [value](/#34) (stack index 2) is not 0 (since Byzantium fork). diff --git a/docs/opcodes/F2/berlin.mdx b/docs/opcodes/F2/berlin.mdx index a6c74bde..266a675d 100644 --- a/docs/opcodes/F2/berlin.mdx +++ b/docs/opcodes/F2/berlin.mdx @@ -6,6 +6,7 @@ The memory expansion cost explanation can be found [here](/about). The different costs are: - - `code_execution_cost` is the cost of the called code execution (limited by the `gas` parameter). - - If `address` is warm, then `address_access_cost` is {gasPrices|warmstorageread}, otherwise it is {gasPrices|coldaccountaccess}. See section [access sets](/about). - - If `value` is not 0, then `positive_value_cost` is {gasPrices|callValueTransfer}. In this case there is also a call stipend that is given to make sure that a basic fallback function can be called. {gasPrices|callStipend} is thus removed from the cost, and also added to the `gas` input. + +- `code_execution_cost` is the cost of the called code execution (limited by the `gas` parameter). +- If `address` is warm, then `address_access_cost` is {gasPrices|warmstorageread}, otherwise it is {gasPrices|coldaccountaccess}. See section [access sets](/about). +- If `value` is not 0, then `positive_value_cost` is {gasPrices|callValueTransfer}. In this case there is also a call stipend that is given to make sure that a basic fallback function can be called. {gasPrices|callStipend} is thus removed from the cost, and also added to the `gas` input. diff --git a/docs/opcodes/F2/homestead.mdx b/docs/opcodes/F2/homestead.mdx index 51893858..59635ae5 100644 --- a/docs/opcodes/F2/homestead.mdx +++ b/docs/opcodes/F2/homestead.mdx @@ -6,5 +6,6 @@ The memory expansion cost explanation can be found [here](/about). The different costs are: - - `code_execution_cost` is the cost of the called code execution (limited by the `gas` parameter). - - If `value` is not 0, then `positive_value_cost` is {gasPrices|callValueTransfer}. In this case there is also a call stipend that is given to make sure that a basic fallback function can be called. {gasPrices|callStipend} is thus removed from the cost, and also added to the `gas` input. + +- `code_execution_cost` is the cost of the called code execution (limited by the `gas` parameter). +- If `value` is not 0, then `positive_value_cost` is {gasPrices|callValueTransfer}. In this case there is also a call stipend that is given to make sure that a basic fallback function can be called. {gasPrices|callStipend} is thus removed from the cost, and also added to the `gas` input. diff --git a/docs/opcodes/F3.mdx b/docs/opcodes/F3.mdx index a11744cc..ced6a604 100644 --- a/docs/opcodes/F3.mdx +++ b/docs/opcodes/F3.mdx @@ -3,7 +3,7 @@ fork: Frontier group: System operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -16,23 +16,24 @@ Exits the current [context](/about) successfully. ## Example -| `1` | Memory | -|--:|------:| +| `1` | Memory | +| --: | -------: | | `1` | `0xFF01` | -| * | Input | -|--:|-----:| -| `1` | `0` | -| `1` | `2` | +| \* | Input | +| --: | ----: | +| `1` | `0` | +| `1` | `2` | | `1` | Calling context return data | -|--:|---------------------------:| -| `1` | `0xFF01` | +| --: | --------------------------: | +| `1` | `0xFF01` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='wSet%20the%20statev32%200xFF01uuuuuz0yMSTOREyywExamplez2z0yRETURN'~000000zv1%20y%5Cnw%2F%2F%20vyPUSHu~~%01uvwyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/F4.mdx b/docs/opcodes/F4.mdx index ce345b37..188b9c07 100644 --- a/docs/opcodes/F4.mdx +++ b/docs/opcodes/F4.mdx @@ -3,7 +3,7 @@ fork: Byzantium group: System operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -33,5 +33,6 @@ From the Tangerine Whistle fork, `gas` is capped at all but one 64th (`remaining ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/F4/berlin.mdx b/docs/opcodes/F4/berlin.mdx index c0aebdeb..e8baa5d5 100644 --- a/docs/opcodes/F4/berlin.mdx +++ b/docs/opcodes/F4/berlin.mdx @@ -6,5 +6,6 @@ The memory expansion cost explanation can be found [here](/about). The different costs are: - - `code_execution_cost` is the cost of the called code execution (limited by the `gas` parameter). - - If `address` is warm, then `address_access_cost` is {gasPrices|warmstorageread}, otherwise it is {gasPrices|coldaccountaccess}. See section [access sets](/about). + +- `code_execution_cost` is the cost of the called code execution (limited by the `gas` parameter). +- If `address` is warm, then `address_access_cost` is {gasPrices|warmstorageread}, otherwise it is {gasPrices|coldaccountaccess}. See section [access sets](/about). diff --git a/docs/opcodes/F4/homestead.mdx b/docs/opcodes/F4/homestead.mdx index 6979e9ac..01b7977f 100644 --- a/docs/opcodes/F4/homestead.mdx +++ b/docs/opcodes/F4/homestead.mdx @@ -6,4 +6,5 @@ The memory expansion cost explanation can be found [here](/about). The different costs are: - - `code_execution_cost` is the cost of the called code execution (limited by the `gas` parameter). + +- `code_execution_cost` is the cost of the called code execution (limited by the `gas` parameter). diff --git a/docs/opcodes/F5.mdx b/docs/opcodes/F5.mdx index d9829c3a..b173a49e 100644 --- a/docs/opcodes/F5.mdx +++ b/docs/opcodes/F5.mdx @@ -3,7 +3,7 @@ fork: Constantinople group: System operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -17,6 +17,7 @@ The destination address is calculated as follows: address = keccak256(0xff + sender_address + salt + keccak256(initialisation_code))[12:] Deployment can fail due to: + - A contract already exists at the destination address. - Insufficient value to transfer. - Sub [context](/about) [reverted](/#FD). @@ -43,7 +44,8 @@ Note that these failures only affect the return value and do not cause the calli ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. - The current execution context is from a [STATICCALL](/#FA). -- `size` is greater than the chain's maximum initcode size (since Shanghai fork). \ No newline at end of file +- `size` is greater than the chain's maximum initcode size (since Shanghai fork). diff --git a/docs/opcodes/FA.mdx b/docs/opcodes/FA.mdx index b19ff764..2bbd6218 100644 --- a/docs/opcodes/FA.mdx +++ b/docs/opcodes/FA.mdx @@ -3,7 +3,7 @@ fork: Byzantium group: System operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -31,5 +31,6 @@ From the Tangerine Whistle fork, `gas` is capped at all but one 64th (`remaining ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/FA/berlin.mdx b/docs/opcodes/FA/berlin.mdx index c0aebdeb..e8baa5d5 100644 --- a/docs/opcodes/FA/berlin.mdx +++ b/docs/opcodes/FA/berlin.mdx @@ -6,5 +6,6 @@ The memory expansion cost explanation can be found [here](/about). The different costs are: - - `code_execution_cost` is the cost of the called code execution (limited by the `gas` parameter). - - If `address` is warm, then `address_access_cost` is {gasPrices|warmstorageread}, otherwise it is {gasPrices|coldaccountaccess}. See section [access sets](/about). + +- `code_execution_cost` is the cost of the called code execution (limited by the `gas` parameter). +- If `address` is warm, then `address_access_cost` is {gasPrices|warmstorageread}, otherwise it is {gasPrices|coldaccountaccess}. See section [access sets](/about). diff --git a/docs/opcodes/FA/homestead.mdx b/docs/opcodes/FA/homestead.mdx index 6979e9ac..01b7977f 100644 --- a/docs/opcodes/FA/homestead.mdx +++ b/docs/opcodes/FA/homestead.mdx @@ -6,4 +6,5 @@ The memory expansion cost explanation can be found [here](/about). The different costs are: - - `code_execution_cost` is the cost of the called code execution (limited by the `gas` parameter). + +- `code_execution_cost` is the cost of the called code execution (limited by the `gas` parameter). diff --git a/docs/opcodes/FD.mdx b/docs/opcodes/FD.mdx index e207986e..4c5381d7 100644 --- a/docs/opcodes/FD.mdx +++ b/docs/opcodes/FD.mdx @@ -3,7 +3,7 @@ fork: Byzantium group: System operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -19,23 +19,24 @@ The [return data](/about) of the calling context is set as the given chunk of me ## Example -| `1` | Memory | -|--:|------:| +| `1` | Memory | +| --: | -------: | | `1` | `0xFF01` | -| * | Input | -|--:|-----:| -| `1` | `0` | -| `1` | `2` | +| \* | Input | +| --: | ----: | +| `1` | `0` | +| `1` | `2` | | `1` | Calling context return data | -|--:|---------------------------:| -| `1` | `0xFF01` | +| --: | --------------------------: | +| `1` | `0xFF01` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='wSet%20the%20statev32%200xFF01uuuuuz0yMSTOREyywExamplez2z0yREVERT'~000000zv1%20y%5Cnw%2F%2F%20vyPUSHu~~%01uvwyz~_). ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. diff --git a/docs/opcodes/FF.mdx b/docs/opcodes/FF.mdx index 53f109c5..07895002 100644 --- a/docs/opcodes/FF.mdx +++ b/docs/opcodes/FF.mdx @@ -3,7 +3,7 @@ fork: Frontier group: System operations --- -*Index 1 is top of the stack. See [PUSH](/#60).* +_Index 1 is top of the stack. See [PUSH](/#60)._ ## Notes @@ -20,6 +20,7 @@ The current account is registered to be destroyed, and will be at the end of the ## Error cases The state changes done by the current context are [reverted](#FD) in those cases: + - Not enough gas. - Not enough values on the stack. - The current execution context is from a [STATICCALL](/#FA) (since Byzantium fork). diff --git a/docs/precompiled/0x01.mdx b/docs/precompiled/0x01.mdx index 7ce5b076..a14781c0 100644 --- a/docs/precompiled/0x01.mdx +++ b/docs/precompiled/0x01.mdx @@ -8,28 +8,28 @@ More information about ECDSA can be found [here](https://en.wikipedia.org/wiki/E ## Inputs -| Byte range | Name | Description | -|-----------:|-----:|------------:| -| `[0; 31]` (32 bytes) | hash | Keccack-256 hash of the transaction | -| `[32; 63]` (32 bytes) | v | Recovery identifier, expected to be either 27 or 28 | -| `[64; 95]` (32 bytes) | r | x-value, expected to be in the range `]0; secp256k1n[` | -| `[96; 127]` (32 bytes) | s | Expected to be in the range `]0; secp256k1n[` | +| Byte range | Name | Description | +| ---------------------: | ---: | -----------------------------------------------------: | +| `[0; 31]` (32 bytes) | hash | Keccack-256 hash of the transaction | +| `[32; 63]` (32 bytes) | v | Recovery identifier, expected to be either 27 or 28 | +| `[64; 95]` (32 bytes) | r | x-value, expected to be in the range `]0; secp256k1n[` | +| `[96; 127]` (32 bytes) | s | Expected to be in the range `]0; secp256k1n[` | ## Output -| Byte range | Name | Description | -|-----------:|-----:|------------:| +| Byte range | Name | Description | +| -----------------: | ------------: | ------------------------------------------------------: | | [0; 31] (32 bytes) | publicAddress | The recovered 20-byte address right aligned to 32 bytes | If an address cannot be recovered or not enough gas was given, then there is no return data, indicating a precompile contract error. Please note, that the return data is the address that issued the signature but it won't verify the signature. ## Example -| Input | Output | -|------:|-------:| +| Input | Output | +| -------------------------------------------------------------------: | -------------------------------------------: | | `0x456e9aea5e197a1f1af7a3e85a3212fa4049a3ba34c2289b4c860fc0b0c64ef3` | `0x7156526fbd7a3c72969b54f64e42c10fbb768c8a` | -| `28` | | -| `0x9242685bf161793cc25603c231bc2f568eb630ea16aa137d2664ac8038825608` | | -| `0x4f8ae3bd7535248d0bd448298cc2e2071e56992d0774dc340c368ae950852ada` | | +| `28` | | +| `0x9242685bf161793cc25603c231bc2f568eb630ea16aa137d2664ac8038825608` | | +| `0x4f8ae3bd7535248d0bd448298cc2e2071e56992d0774dc340c368ae950852ada` | | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='jFirsNplace_parameters%20in%20memoryZ456e9aea5e197a1f1af7a3e85a3212fa4049a3ba34c2289b4c860fc0b0c64ef3whash~Y~28wvX2YZ9242685bf161793cc25603c231bc2f568eb630ea16aa137d2664ac8038825608wrX4YZ4f8ae3bd7535248d0bd448298cc2e2071e56992d0774dc340c368ae950852adawsX6YqqjDo_call~32JSizeX80JOffsetX8VSize~VOffset~1waddressW4QFFFFFFFFwgasqSTATICCALLqqjPut_resulNalonKon_stackqPOPX80qMLOAD'~W1%20w%20jq%5Cnj%2F%2F%20_%20thKZW32QY0qMSTOREX~0xWqPUSHV0wargsQ%200xNt%20Ke%20Jwret%01JKNQVWXYZ_jqw~_). diff --git a/docs/precompiled/0x02.mdx b/docs/precompiled/0x02.mdx index a4d13716..e8b633fb 100644 --- a/docs/precompiled/0x02.mdx +++ b/docs/precompiled/0x02.mdx @@ -4,22 +4,22 @@ fork: Frontier ## Inputs -| Byte range | Name | Description | -|-----------:|-----:|------------:| +| Byte range | Name | Description | +| ------------: | ---: | -------------------------: | | `[0; length[` | data | Data to hash with SHA2-256 | ## Output -| Byte range | Name | Description | -|-----------:|-----:|------------:| +| Byte range | Name | Description | +| -----------------: | ---: | --------------: | | [0; 31] (32 bytes) | hash | The result hash | - If not enough gas was given, then there is no return data, indicating a precompile contract error. +If not enough gas was given, then there is no return data, indicating a precompile contract error. ## Example -| Input | Output | -|------:|-------:| +| Input | Output | +| -----: | -----------------------------------------------------------------: | | `0xFF` | `a8100ae6aa1940d0b663bb31cd466142ebbdbd5187131b92d93818987832eb89` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='wFirsWplaceqparameters%20in%20memorybFFjdata~0vMSTOREvvwDoqcallZSizeZ_1XSizeb1FX_2jaddressY4%200xFFFFFFFFjgasvSTATICCALLvvwPutqresulWalonVonqstackvPOPb20vMLOAD'~Y1j%2F%2F%20v%5Cnq%20thVj%20wb~0x_Offset~Zb20jretYvPUSHXjargsWt%20Ve%20%01VWXYZ_bjqvw~_). diff --git a/docs/precompiled/0x03.mdx b/docs/precompiled/0x03.mdx index 005f17e6..885ff5d1 100644 --- a/docs/precompiled/0x03.mdx +++ b/docs/precompiled/0x03.mdx @@ -4,22 +4,22 @@ fork: Frontier ## Inputs -| Byte range | Name | Description | -|-----------:|-----:|------------:| +| Byte range | Name | Description | +| ------------: | ---: | ---------------------------: | | `[0; length[` | data | Data to hash with RIPEMD-160 | ## Output -| Byte range | Name | Description | -|-----------:|-----:|------------:| +| Byte range | Name | Description | +| -----------------: | ---: | ------------------------------------------------: | | [0; 31] (32 bytes) | hash | The result 20-byte hash right aligned to 32 bytes | - If not enough gas was given, then there is no return data, indicating a precompile contract error. +If not enough gas was given, then there is no return data, indicating a precompile contract error. ## Example -| Input | Output | -|------:|-------:| +| Input | Output | +| -----: | -----------------------------------------: | | `0xFF` | `2c0c45d3ecab80fe060e5f1d7057cd2f8de5e557` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='wFirsWplaceqparameters%20in%20memorybFFjdata~0vMSTOREvvwDoqcallZSizeZ_1XSizeb1FX_3jaddressY4%200xFFFFFFFFjgasvSTATICCALLvvwPutqresulWalonVonqstackvPOPb20vMLOAD'~Y1j%2F%2F%20v%5Cnq%20thVj%20wb~0x_Offset~Zb20jretYvPUSHXjargsWt%20Ve%20%01VWXYZ_bjqvw~_). diff --git a/docs/precompiled/0x04.mdx b/docs/precompiled/0x04.mdx index 80b5f70a..079cf0cc 100644 --- a/docs/precompiled/0x04.mdx +++ b/docs/precompiled/0x04.mdx @@ -8,22 +8,22 @@ The identity function is typically used to copy a chunk of memory. ## Inputs -| Byte range | Name | Description | -|-----------:|-----:|------------:| +| Byte range | Name | Description | +| ------------: | ---: | -------------: | | `[0; length[` | data | Data to return | ## Output -| Byte range | Name | Description | -|-----------:|-----:|------------:| +| Byte range | Name | Description | +| ------------: | ---: | --------------: | | `[0; length[` | data | Data from input | - If not enough gas was given, then there is no return data, indicating a precompile contract error. +If not enough gas was given, then there is no return data, indicating a precompile contract error. ## Example -| Input | Output | -|------:|-------:| +| Input | Output | +| -----: | -----: | | `0xFF` | `0xFF` | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='wFirsWplaceqparameters%20in%20memorybFFjdata~0vMSTOREvvwDoqcall~1QX3FQ_1YX1FY_4jaddressZ4%200xFFFFFFFFjgasvSTATICCALLvvwPutqresulWalonVonqstackvPOPb20vMLOAD'~Z1j%2F%2F%20v%5Cnq%20thVj%20wb~0x_Offset~ZvPUSHYjargsXSizebWt%20Ve%20Qjret%01QVWXYZ_bjqvw~_). diff --git a/docs/precompiled/0x05.mdx b/docs/precompiled/0x05.mdx index 65b10779..7b705ff8 100644 --- a/docs/precompiled/0x05.mdx +++ b/docs/precompiled/0x05.mdx @@ -4,32 +4,32 @@ fork: Byzantium ## Inputs -| Byte range | Name | Description | -|-----------:|-----:|------------:| -| `[0; 31]` (32 bytes) | Bsize | Byte size of B | -| `[32; 63]` (32 bytes) | Esize | Byte size of E | -| `[64; 95]` (32 bytes) | Msize | Byte size of M | -| `[96; 96 + Bsize[` | B | Base as unsigned integer | -| `[96 + Bsize; 96 + Bsize + Esize[` | E | Exponent as unsigned integer, if zero, then `B ** E` will be one | -| `[96 + Bsize + Esize; 96 + Bsize + Esize + Msize[` | M | Modulo as unsigned integer, if zero, then returns zero | +| Byte range | Name | Description | +| -------------------------------------------------: | ----: | ---------------------------------------------------------------: | +| `[0; 31]` (32 bytes) | Bsize | Byte size of B | +| `[32; 63]` (32 bytes) | Esize | Byte size of E | +| `[64; 95]` (32 bytes) | Msize | Byte size of M | +| `[96; 96 + Bsize[` | B | Base as unsigned integer | +| `[96 + Bsize; 96 + Bsize + Esize[` | E | Exponent as unsigned integer, if zero, then `B ** E` will be one | +| `[96 + Bsize + Esize; 96 + Bsize + Esize + Msize[` | M | Modulo as unsigned integer, if zero, then returns zero | ## Output -| Byte range | Name | Description | -|-----------:|-----:|------------:| +| Byte range | Name | Description | +| -----------: | ----: | ------------------------------------------------------------: | | `[0; mSize[` | value | Result of the computation, with the same number of bytes as M | - If not enough gas was given, then there is no return data, indicating a precompile contract error. +If not enough gas was given, then there is no return data, indicating a precompile contract error. ## Example | Input | Output | -|------:|-------:| -| `1` | `8` | -| `1` | | -| `1` | | -| `8` | | -| `9` | | -| `10` | | +| ----: | -----: | +| `1` | `8` | +| `1` | | +| `1` | | +| `8` | | +| `9` | | +| `10` | | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='jFirsNplacebparameters%20in%20memoryWBsZ_WEsZX2_WMsZX4_Y32G08090A7777JwB%2C%20E%20and%20M~X6_qqjDobcallWretSZX9FwretVX63QSZ0QV5waddressY4GFFFFFFFFwgasqSTATICCALLqqjPutbresulNalonKonbstackqPOP~X80qMLOAD'~Y1%20w%20jvJJJ0q%5Cnj%2F%2F%20b%20thK_0qMSTOREZize~YqPUSHX0xW~1wVOffset~QwargsNt%20Ke%20J00G%20X7vv%017GJKNQVWXYZ_bjqvw~_). diff --git a/docs/precompiled/0x06.mdx b/docs/precompiled/0x06.mdx index 0cd1e28b..a7bfb130 100644 --- a/docs/precompiled/0x06.mdx +++ b/docs/precompiled/0x06.mdx @@ -8,29 +8,29 @@ The point at infinity is encoded with both field `x` and `y` at `0`. ## Inputs -| Byte range | Name | Description | -|-----------:|-----:|------------:| -| `[0; 31]` (32 bytes) | x1 | X coordinate of the first point on the elliptic curve 'alt_bn128'| -| `[32; 63]` (32 bytes) | y1 | Y coordinate of the first point on the elliptic curve 'alt_bn128' | -| `[64; 95]` (32 bytes) | x2 | X coordinate of the second point on the elliptic curve 'alt_bn128' | -| `[96; 128]` (32 bytes) | y2 | Y coordinate of the second point on the elliptic curve 'alt_bn128' | +| Byte range | Name | Description | +| ---------------------: | ---: | -----------------------------------------------------------------: | +| `[0; 31]` (32 bytes) | x1 | X coordinate of the first point on the elliptic curve 'alt_bn128' | +| `[32; 63]` (32 bytes) | y1 | Y coordinate of the first point on the elliptic curve 'alt_bn128' | +| `[64; 95]` (32 bytes) | x2 | X coordinate of the second point on the elliptic curve 'alt_bn128' | +| `[96; 128]` (32 bytes) | y2 | Y coordinate of the second point on the elliptic curve 'alt_bn128' | ## Output -| Byte range | Name | Description | -|-----------:|-----:|------------:| -| `[0; 31]` (32 bytes) | x | X coordinate of the result point on the elliptic curve 'alt_bn128' | -| `[32; 63]` (32 bytes) | y | Y coordinate of the result point on the elliptic curve 'alt_bn128' | +| Byte range | Name | Description | +| --------------------: | ---: | -----------------------------------------------------------------: | +| `[0; 31]` (32 bytes) | x | X coordinate of the result point on the elliptic curve 'alt_bn128' | +| `[32; 63]` (32 bytes) | y | Y coordinate of the result point on the elliptic curve 'alt_bn128' | If the input is not valid, all gas provided is consumed and there is no return data, indicating a precompile contract error. Also, if not enough gas was given, there is no return data. ## Example -| Input | Output | -|------:|-------:| -| `1` | `0x030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd3` | -| `2` | `0x15ed738c0e0a7c92e7845f96b2ae9c0a68a6a449e3538fc7ff3ebf7a5a18a2c4` | -| `1` | | -| `2` | | +| Input | Output | +| ----: | -------------------------------------------------------------------: | +| `1` | `0x030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd3` | +| `2` | `0x15ed738c0e0a7c92e7845f96b2ae9c0a68a6a449e3538fc7ff3ebf7a5a18a2c4` | +| `1` | | +| `2` | | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='qFirsQplacejparameters%20in%20memoryK1~V1_2bK2_4V2_6bvvqDojcall_4WSize_8WOffset_8YSize~YOffset~6waddressX4%200xFFFFFFFFwgasvSTATICCALLvvqPutjresulQalonNonjstackvPOP_AZ_8Z'~X1%20w%20qv%5Cnq%2F%2F%20j%20thNb0vMSTORE_~0xZ0vMLOADY0wargsXvPUSHW0wretVb~2wyQt%20Ne%20K~1wx%01KNQVWXYZ_bjqvw~_). diff --git a/docs/precompiled/0x07.mdx b/docs/precompiled/0x07.mdx index 640c2564..059ba3b6 100644 --- a/docs/precompiled/0x07.mdx +++ b/docs/precompiled/0x07.mdx @@ -8,27 +8,27 @@ The point at infinity is encoded with both field `x` and `y` at `0`. ## Inputs -| Byte range | Name | Description | -|-----------:|-----:|------------:| -| `[0; 31]` (32 bytes) | x1 | X coordinate of the first point on the elliptic curve 'alt_bn128'| -| `[32; 63]` (32 bytes) | y1 | Y coordinate of the first point on the elliptic curve 'alt_bn128' | -| `[64; 95]` (32 bytes) | s | Scalar to use for the multiplication | +| Byte range | Name | Description | +| --------------------: | ---: | ----------------------------------------------------------------: | +| `[0; 31]` (32 bytes) | x1 | X coordinate of the first point on the elliptic curve 'alt_bn128' | +| `[32; 63]` (32 bytes) | y1 | Y coordinate of the first point on the elliptic curve 'alt_bn128' | +| `[64; 95]` (32 bytes) | s | Scalar to use for the multiplication | ## Output -| Byte range | Name | Description | -|-----------:|-----:|------------:| -| `[0; 31]` (32 bytes) | x | X coordinate of the result point on the elliptic curve 'alt_bn128' | -| `[32; 63]` (32 bytes) | y | Y coordinate of the result point on the elliptic curve 'alt_bn128' | +| Byte range | Name | Description | +| --------------------: | ---: | -----------------------------------------------------------------: | +| `[0; 31]` (32 bytes) | x | X coordinate of the result point on the elliptic curve 'alt_bn128' | +| `[32; 63]` (32 bytes) | y | Y coordinate of the result point on the elliptic curve 'alt_bn128' | If the input is not valid, all gas provided is consumed and there is no return data, indicating a precompile contract error. Also, if not enough gas was given, there is no return data. ## Example -| Input | Output | -|------:|-------:| -| `1` | `0x030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd3` | -| `2` | `0x15ed738c0e0a7c92e7845f96b2ae9c0a68a6a449e3538fc7ff3ebf7a5a18a2c4` | -| `2` | | +| Input | Output | +| ----: | -------------------------------------------------------------------: | +| `1` | `0x030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd3` | +| `2` | `0x15ed738c0e0a7c92e7845f96b2ae9c0a68a6a449e3538fc7ff3ebf7a5a18a2c4` | +| `2` | | [Reproduce in playground](/playground?unit=Wei&codeType=Mnemonic&code='wFirsVplacejparameters%20in%20memory~1qx1~Ny1_2Ns_4bvvwDojcall_4WSize_6WOffset_6YSize~YOffset~7qaddressX4%200xFFFFFFFFqgasvSTATICCALLvvwPutjresulValonQonjstackvPOP_8Z_6Z'~X1q%2F%2F%20v%5Cnq%20wj%20thQb0vMSTORE_~0xZ0vMLOADY0qargsXvPUSHW0qretVt%20Qe%20Nb~2q%01NQVWXYZ_bjqvw~_). diff --git a/docs/precompiled/0x08.mdx b/docs/precompiled/0x08.mdx index b2dfc5e8..456fc9c7 100644 --- a/docs/precompiled/0x08.mdx +++ b/docs/precompiled/0x08.mdx @@ -10,38 +10,38 @@ The point at infinity is encoded with both field `x` and `y` at `0`. The input must always be a multiple of 6 32-byte values. 0 inputs is valid and returns 1. One set of inputs is defined as follows: -| Byte range | Name | -|-----------:|-----:| -| `[0; 31]` (32 bytes) | x1 | -| `[32; 63]` (32 bytes) | y1 | -| `[64; 95]` (32 bytes) | x2 | -| `[96; 127]` (32 bytes) | y2 | -| `[128; 159]` (32 bytes) | x3 | -| `[160; 191]` (32 bytes) | y3 | +| Byte range | Name | +| ----------------------: | ---: | +| `[0; 31]` (32 bytes) | x1 | +| `[32; 63]` (32 bytes) | y1 | +| `[64; 95]` (32 bytes) | x2 | +| `[96; 127]` (32 bytes) | y2 | +| `[128; 159]` (32 bytes) | x3 | +| `[160; 191]` (32 bytes) | y3 | ## Output -| Byte range | Name | Description | -|-----------:|-----:|------------:| +| Byte range | Name | Description | +| -------------------: | ------: | ------------------------------------------: | | `[0; 31]` (32 bytes) | success | 1 if the pairing was a success, 0 otherwise | If the input is not valid, all gas provided is consumed and there is no return data, indicating a precompile contract error. Also, if not enough gas was given, there is no return data. ## Example -| Input | Output | -|------:|-------:| -| `0x2cf44499d5d27bb186308b7af7af02ac5bc9eeb6a3d147c186b21fb1b76e18da` | `1` | -| `0x2c0f001f52110ccfe69108924926e45f0b0c868df0e7bde1fe16d3242dc715f6` | | -| `0x1fb19bb476f6b9e44e2a32234da8212f61cd63919354bc06aef31e3cfaff3ebc` | | -| `0x22606845ff186793914e03e21df544c34ffe2f2f3504de8a79d9159eca2d98d9` | | -| `0x2bd368e28381e8eccb5fa81fc26cf3f048eea9abfdd85d7ed3ab3698d63e4f90` | | -| `0x2fe02e47887507adf0ff1743cbac6ba291e66f59be6bd763950bb16041a0a85e` | | -| `0x0000000000000000000000000000000000000000000000000000000000000001` | | -| `0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45` | | -| `0x1971ff0471b09fa93caaf13cbf443c1aede09cc4328f5a62aad45f40ec133eb4` | | -| `0x091058a3141822985733cbdddfed0fd8d6c104e9e9eff40bf5abfef9ab163bc7` | | -| `0x2a23af9a5ce2ba2796c1f4e453a370eb0af8c212d9dc9acd8fc02c2e907baea2` | | -| `0x23a8eb0b0996252cb548a4487da97b02422ebc0e834613f954de6c7e0afdc1fc` | | - -[Reproduce in playground](/playground?unit=Wei&codeType=Solidity&code='O%20SPDX-License-Identifier%3A%20MITRpragma%20soliditB%5E0.8.9%3BRRcontracAPair*gExpampl!(Rkfunction%20run%7BNpublic%20returnK%7Bu*tN(~u*t256%5B12%5D%20memorBU%3BWJxj0w2cf44499d5d27bbF6308b7af7af02ac5bc9eeb6a3d147cF6b2Hb1b76eFdaQWJyj1w2c0f00H52110ccfe6C08924926e45f0b0c868df0e7bdeHe16d3242dc715f6QW2%7Dx_1j2wHb19bb476f6b9e44e2a32234da8212f61cd63C9354bc06aef31e3cfaff3ebcVx_0j3w22606845ffF6793C4e03e21df544c34ffe2f2f3504de8a79dC59eca2d98d9Vy_1j4w2bd368e28381e8eccb5fa8Hc26cf3f048eea9abfdd85d7ed3ab3698d63e4f90Vy_0j5w2fe02e47887507adf0ff1743cbac6ba2Ce66f59be6bd763950bb16041a0a85eqJxj6wZZZZZZZZZ1qJyj7w30644e72e131a029b85045b68F1585d97816aC6871ca8d3c208c16d87cfd45Vx_1j8w197Hf0471b09fa93caaf13cbf443c1aede09cc4328f5a62aad45f40ec133eb4Vx_0j9w0C058a314F22985733cbdddfed0fd8d6c104e9e9eff40bf5abfef9ab163bc7Vy_1j10w2a23af9a5ce2ba2796cH4e453a370eb0af8c212d9dc9acd8fc02c2e907baea2Vy_0j11w23a8eb0b0996252cb548a4487da97b02422ebc0e834613f954de6c7e0afdcHcQ~OmultiplieKth!pair*gKand%20storeKa%201%20*%20th!firsAelemenAof%20U~assemblB(~kif%20iszero%7B~kkcall%7Bnot%7B0%7DY0x08Y0YUY0x0F0YUY0x20%7D~kN(~kkrevert%7B0Y0%7D~k)~)~return%20U%5B0%5D%3BRk)R)'~Rkkw%5D%20%3D%20u*t256%7B0xqQ%5CtWk%20%20%20%20j~U%5BZ0000000Y%2C%20W~O%7BGVq2%7DU*putR%5CnQ%7D%3BO%2F%2FN%7D%20Ks%20J1%7DH1fF18C91By%20At%20*in!e%20%01!*ABCFHJKNOQRUVWYZjkqw~_) +| Input | Output | +| -------------------------------------------------------------------: | -----: | +| `0x2cf44499d5d27bb186308b7af7af02ac5bc9eeb6a3d147c186b21fb1b76e18da` | `1` | +| `0x2c0f001f52110ccfe69108924926e45f0b0c868df0e7bde1fe16d3242dc715f6` | | +| `0x1fb19bb476f6b9e44e2a32234da8212f61cd63919354bc06aef31e3cfaff3ebc` | | +| `0x22606845ff186793914e03e21df544c34ffe2f2f3504de8a79d9159eca2d98d9` | | +| `0x2bd368e28381e8eccb5fa81fc26cf3f048eea9abfdd85d7ed3ab3698d63e4f90` | | +| `0x2fe02e47887507adf0ff1743cbac6ba291e66f59be6bd763950bb16041a0a85e` | | +| `0x0000000000000000000000000000000000000000000000000000000000000001` | | +| `0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45` | | +| `0x1971ff0471b09fa93caaf13cbf443c1aede09cc4328f5a62aad45f40ec133eb4` | | +| `0x091058a3141822985733cbdddfed0fd8d6c104e9e9eff40bf5abfef9ab163bc7` | | +| `0x2a23af9a5ce2ba2796c1f4e453a370eb0af8c212d9dc9acd8fc02c2e907baea2` | | +| `0x23a8eb0b0996252cb548a4487da97b02422ebc0e834613f954de6c7e0afdc1fc` | | + +[Reproduce in playground]() diff --git a/docs/precompiled/0x09.mdx b/docs/precompiled/0x09.mdx index bc05712d..b2b51f47 100644 --- a/docs/precompiled/0x09.mdx +++ b/docs/precompiled/0x09.mdx @@ -4,30 +4,30 @@ fork: Istanbul ## Inputs -| Byte range | Name | Description | -|-----------:|-----:|------------:| -| `[0; 3]` (4 bytes) | rounds | Number of rounds (big-endian unsigned integer) | -| `[4; 67]` (64 bytes) | h | State vector (8 8-byte little-endian unsigned integer) | -| `[68; 195]` (128 bytes) | m | Message block vector (16 8-byte little-endian unsigned integer) | -| `[196; 211]` (16 bytes) | t | Offset counters (2 8-byte little-endian integer) | -| `[212; 212]` (1 bytes) | f | Final block indicator flag (0 or 1) | +| Byte range | Name | Description | +| ----------------------: | -----: | --------------------------------------------------------------: | +| `[0; 3]` (4 bytes) | rounds | Number of rounds (big-endian unsigned integer) | +| `[4; 67]` (64 bytes) | h | State vector (8 8-byte little-endian unsigned integer) | +| `[68; 195]` (128 bytes) | m | Message block vector (16 8-byte little-endian unsigned integer) | +| `[196; 211]` (16 bytes) | t | Offset counters (2 8-byte little-endian integer) | +| `[212; 212]` (1 bytes) | f | Final block indicator flag (0 or 1) | ## Output -| Byte range | Name | Description | -|-----------:|-----:|------------:| -| `[0; 63]` (64 bytes) | h | State vector (8 8-byte little-endian unsigned integer) | +| Byte range | Name | Description | +| -------------------: | ---: | -----------------------------------------------------: | +| `[0; 63]` (64 bytes) | h | State vector (8 8-byte little-endian unsigned integer) | If the input is not valid, all gas provided is consumed and there is no return data, indicating a precompile contract error. Also, if not enough gas was given, there is no return data. ## Example -| Input | Output | -|------:|-------:| -| `0x0000000c` | `0xba80a53f981c4d0d6a2797b69f12f6e94c212f14685ac4b74b12bb6fdbffa2d17d87c5392aab792dc252d5de4533cc9518d38aa8dbf1925ab92386edd4009923` | -| `0x48c9bdf267e6096a3ba7ca8485ae67bb2bf894fe72f36e3cf1361d5f3af54fa5d182e6ad7f520e511f6c3e2b8c68059b6bbd41fbabd9831f79217e1319cde05b` | | -| `0x6162630000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000` | | -| `0x03000000000000000000000000000000` | | -| `0x01` | | +| Input | Output | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -----------------------------------------------------------------------------------------------------------------------------------: | +| `0x0000000c` | `0xba80a53f981c4d0d6a2797b69f12f6e94c212f14685ac4b74b12bb6fdbffa2d17d87c5392aab792dc252d5de4533cc9518d38aa8dbf1925ab92386edd4009923` | +| `0x48c9bdf267e6096a3ba7ca8485ae67bb2bf894fe72f36e3cf1361d5f3af54fa5d182e6ad7f520e511f6c3e2b8c68059b6bbd41fbabd9831f79217e1319cde05b` | | +| `0x6162630000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000` | | +| `0x03000000000000000000000000000000` | | +| `0x01` | | [Reproduce in playground]() diff --git a/docs/transactions/T0/T0.mdx b/docs/transactions/T0/T0.mdx new file mode 100644 index 00000000..0c8e207f --- /dev/null +++ b/docs/transactions/T0/T0.mdx @@ -0,0 +1,3 @@ +# Type 0 - User Transactions + +Represent transactions pré-[EIP-2718](https://eips.ethereum.org/EIPS/eip-2718). diff --git a/docs/transactions/T1.mdx b/docs/transactions/T1.mdx new file mode 100644 index 00000000..a4b72941 --- /dev/null +++ b/docs/transactions/T1.mdx @@ -0,0 +1,3 @@ +# Type 1 - User Transactions + +Represent transactions pos-[EIP-2718](https://eips.ethereum.org/EIPS/eip-2718). diff --git a/docs/transactions/T126.mdx b/docs/transactions/T126.mdx new file mode 100644 index 00000000..e42539ec --- /dev/null +++ b/docs/transactions/T126.mdx @@ -0,0 +1,3 @@ +# Type 126 - System Transactions + +It can be transactions importing data from L1 to Optimism or user-deposited transactions. [See more](https://github.com/ethereum-optimism/optimism/blob/develop/specs/deposits.md). diff --git a/docs/transactions/T2.mdx b/docs/transactions/T2.mdx new file mode 100644 index 00000000..6a2b4623 --- /dev/null +++ b/docs/transactions/T2.mdx @@ -0,0 +1,3 @@ +# Type 2 - User Transactions + +Represent transactions [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559). diff --git a/lib/solcWorker.js b/lib/solcWorker.js index b112d4f8..3d71ae9b 100644 --- a/lib/solcWorker.js +++ b/lib/solcWorker.js @@ -181,13 +181,13 @@ onmessage = function (e) { } } - const contracts = []; + const contracts = [] for (const contractName in output.contracts.web) { contracts.push({ name: contractName, code: output.contracts.web[contractName].evm.bytecode.object, - abi: output.contracts.web[contractName].abi + abi: output.contracts.web[contractName].abi, }) } diff --git a/lib/useActions.tsx b/lib/useActions.tsx index 70d3e85c..85541b20 100644 --- a/lib/useActions.tsx +++ b/lib/useActions.tsx @@ -1,4 +1,6 @@ +import { Action } from 'kbar' import { useRouter } from 'next/router' +import { useTheme } from 'next-themes' import { GITHUB_REPO_URL } from 'util/constants' @@ -6,58 +8,130 @@ import { Icon } from 'components/ui' const useActions = () => { const router = useRouter() + const { setTheme } = useTheme() + + const createAction = ( + id: string, + name: string, + shortcut: string[], + keywords: string, + section: string, + subtitle: string, + iconName: string, + perform?: () => void, + ): Action => { + return { + id, + name, + shortcut, + keywords, + section, + subtitle, + icon: , + perform, + } + } return [ - { - id: 'opcodes', - name: 'Opcodes', - shortcut: ['o'], - keywords: 'home opcodes back', - section: 'Navigation', - perform: () => router.push('/'), - subtitle: 'Opcodes reference', - icon: , - }, - { - id: 'precompiled', - name: 'Precompiled', - shortcut: ['a'], - keywords: 'precompiled contracts', - section: 'Navigation', - subtitle: 'Precompiled contracts reference', - perform: () => router.push('/precompiled'), - icon: , - }, - { - id: 'playground', - name: 'Playground', - shortcut: ['p'], - keywords: 'editor play', - section: 'Navigation', - perform: () => router.push('/playground'), - subtitle: 'Play with EVM in real-time', - icon: , - }, - { - id: 'about', - name: 'About', - shortcut: ['a'], - keywords: 'about EVM', - section: 'Navigation', - subtitle: 'About EVM and its internals', - perform: () => router.push('/about'), - icon: , - }, - { - id: 'github', - name: 'GitHub', - shortcut: ['g'], - keywords: 'contribute GitHub issues', - section: 'Navigation', - subtitle: 'Contribute on GitHub', - perform: () => window.open(GITHUB_REPO_URL, '_blank'), - icon: , - }, + createAction( + 'theme', + 'Theme', + ['t'], + 'change theme', + 'Settings', + 'Change application theme', + 'palette-line', + ), + createAction( + 'theme-light', + 'Light Mode', + ['l'], + 'light theme', + 'Settings', + 'Switch to Light Mode', + 'sun-line', + () => setTheme('light'), + ), + createAction( + 'theme-dark', + 'Dark Mode', + ['d'], + 'dark theme', + 'Settings', + 'Switch to Dark Mode', + 'moon-line', + () => setTheme('dark'), + ), + createAction( + 'theme-system', + 'System Default', + ['s'], + 'system theme', + 'Settings', + 'Use system theme settings', + 'settings-2-line', + () => setTheme('system'), + ), + createAction( + 'opcodes', + 'Opcodes', + ['o'], + 'home opcodes back', + 'Navigation', + 'Opcodes reference', + 'home-2-line', + () => router.push('/'), + ), + createAction( + 'precompiled', + 'Precompiled', + ['a'], + 'precompiled contracts', + 'Navigation', + 'Precompiled contracts reference', + 'information-line', + () => router.push('/precompiled'), + ), + createAction( + 'transactions', + 'Transactions', + ['t'], + 'Transactions Types', + 'Navigation', + 'Transactions Types reference', + 'information-line', + () => router.push('/transactions'), + ), + createAction( + 'playground', + 'Playground', + ['p'], + 'editor play', + 'Navigation', + 'Play with EVM in real-time', + 'play-circle-line', + () => router.push('/playground'), + ), + createAction( + 'about', + 'About', + ['b'], + 'about EVM', + 'Navigation', + 'About EVM and its internals', + 'information-line', + () => router.push('/about'), + ), + createAction( + 'github', + 'GitHub', + ['g'], + 'contribute GitHub issues', + 'Navigation', + 'Contribute on GitHub', + 'github-fill', + () => window.open(GITHUB_REPO_URL, '_blank'), + ), ] } diff --git a/pages/transactions.tsx b/pages/transactions.tsx new file mode 100644 index 00000000..6c579447 --- /dev/null +++ b/pages/transactions.tsx @@ -0,0 +1,161 @@ +import fs from 'fs' +import path from 'path' + +import React, { useContext, useEffect } from 'react' + +import matter from 'gray-matter' +import type { NextPage } from 'next' +import getConfig from 'next/config' +import Head from 'next/head' +import { useRouter } from 'next/router' +import { serialize } from 'next-mdx-remote/serialize' +import { IItemDocs, IGasDocs, IDocMeta } from 'types' + +import { EthereumContext } from 'context/ethereumContext' + +import ContributeBox from 'components/ContributeBox' +import HomeLayout from 'components/layouts/Home' +import ReferenceTable from 'components/Reference' +import { H1, H2, Container } from 'components/ui' + +const { serverRuntimeConfig } = getConfig() + +const TransactionsPage = ({ + transactionDocs, +}: { + transactionDocs: IItemDocs +}) => { + const { transactionTypes, onForkChange } = useContext(EthereumContext) + + const router = useRouter() + + useEffect(() => { + const query = router.query + + if ('fork' in query) { + onForkChange(query.fork as string) + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [router.isReady]) + + return ( + <> + + + + EVM Codes - Transactions Types + + + + +

Transactions Types

+ +

Introduction

+

+ Beyond a set of opcodes, the Ethereum Virtual Machine (EVM) supports + various types of transactions, each with its own specific + characteristics and uses. These types primarily differ in how the + transactions are structured and processed by the Ethereum network, + affecting aspects such as gas fees, gas limits, and transaction + prioritization.{' '} +

+
+ +
+ + + +
+ +
+ +
+ + ) +} + +TransactionsPage.getLayout = function getLayout(page: NextPage) { + return {page} +} + +export const getStaticProps = async () => { + const docsPath = path.join(serverRuntimeConfig.APP_ROOT, 'docs/transactions') + + const transactionDocs: IItemDocs = {} + const gasDocs: IGasDocs = {} + + const docs = await readDocsFromDirectory(docsPath) + + await processDocuments(docs, docsPath, transactionDocs) + + return { + props: { + transactionDocs, + gasDocs, + }, + } +} + +async function readDocsFromDirectory(docsPath: string): Promise { + try { + return fs.readdirSync(docsPath) + } catch (error) { + console.debug('Error reading documents directory:', error) + return [] + } +} + +async function processDocuments( + docs: string[], + docsPath: string, + transactionDocs: IItemDocs, +): Promise { + await Promise.all( + docs.map(async (doc) => { + const filePath = path.join(docsPath, doc) + if (isFile(filePath)) { + await processDocument(filePath, transactionDocs) + } + }), + ) +} + +function isFile(filePath: string): boolean { + try { + const stat = fs.statSync(filePath) + return stat.isFile() + } catch (error) { + console.debug('Error accessing file:', filePath, error) + return false + } +} + +async function processDocument( + filePath: string, + transactionDocs: IItemDocs, +): Promise { + const transactionType = path.parse(filePath).name.toLowerCase() + + try { + const markdownWithMeta = fs.readFileSync(filePath, 'utf-8') + const { data, content } = matter(markdownWithMeta) + const meta = data as IDocMeta + const mdxSource = await serialize(content) + + transactionDocs[transactionType] = { meta, mdxSource } + } catch (error) { + console.debug('Error processing document:', filePath, error) + } +} + +export default TransactionsPage diff --git a/styles/globals.css b/styles/globals.css index fd2950b6..ae7444da 100644 --- a/styles/globals.css +++ b/styles/globals.css @@ -130,7 +130,7 @@ html { .select__option { @apply text-sm py-2 px-3 font-normal text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-white cursor-pointer hover:bg-gray-50 dark:hover:bg-black-500 !important; - @apply capitalize + @apply capitalize; } .select__option--is-selected { diff --git a/transactions.json b/transactions.json new file mode 100644 index 00000000..fea04928 --- /dev/null +++ b/transactions.json @@ -0,0 +1,90 @@ +{ + "type0": { + "type": "T0", + "name": "User Transactions (Pre-EIP-2718)", + "description": "Represent pre-EIP-2718 transactions", + "rollups": { + "optimism": { + "details": "Transactions as per Optimism specifications for pre-EIP-2718." + }, + "base": { + "details": "Transactions as per Base specifications for pre-EIP-2718." + }, + "arbitrumOne": { + "details": "Transactions as per Arbitrum One specifications for pre-EIP-2718." + }, + "linea": { + "details": "Transactions as per Linea specifications for pre-EIP-2718." + }, + "polygonZkEVM": { + "details": "Transactions as per Polygon zkEVM specifications for pre-EIP-2718." + }, + "scroll": { + "details": "Transactions as per Scroll specifications for pre-EIP-2718." + }, + "taiko": { + "details": "Transactions as per Taiko specifications for pre-EIP-2718." + } + } + }, + "type1": { + "type": "T1", + "name": "User Transactions (Post EIP-2718)", + "description": "Represent legacy transactions post EIP-2718", + "rollups": { + "optimism": { + "details": "Transactions as per Optimism specifications for post EIP-2718." + }, + "base": { + "details": "Transactions as per Base specifications for post EIP-2718." + } + } + }, + "type2": { + "type": "T2", + "name": "User Transactions (EIP-1559)", + "description": "Represent EIP-1559 transactions", + "rollups": { + "optimism": { + "details": "Transactions as per Optimism specifications for EIP-1559." + }, + "base": { + "details": "Transactions as per Base specifications for EIP-1559." + } + } + }, + + "type100": { + "type": "T100", + "name": "System (Bridge) Transaction", + "description": "A deposit of ETH from L1 to L2 via the Arbitrum bridge", + "rollups": { + "arbitrumOne": { + "details": "Deposit transaction from L1 to L2 in Arbitrum One." + } + } + }, + "type101": { + "type": "T101", + "name": "System (Bridge) Transaction", + "description": "An L1 user can use to call an L2 contract via the bridge", + "rollups": { + "arbitrumOne": { + "details": "Call L2 contract from L1 via the bridge in Arbitrum One." + } + } + }, + "type126": { + "type": "T126", + "name": "System Transactions", + "description": "Transactions importing L1 data into rollups or User-deposited transactions", + "rollups": { + "optimism": { + "details": "System transactions specific to the Optimism rollup." + }, + "base": { + "details": "System transactions specific to the Base rollup." + } + } + } +} diff --git a/tsconfig.json b/tsconfig.json index 2c684375..db454413 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,11 +2,7 @@ "compilerOptions": { "baseUrl": ".", "target": "ESNext", - "lib": [ - "dom", - "dom.iterable", - "ESNext" - ], + "lib": ["dom", "dom.iterable", "ESNext"], "allowJs": true, "skipLibCheck": true, "strict": true, @@ -20,12 +16,6 @@ "jsx": "preserve", "incremental": true }, - "include": [ - "next-env.d.ts", - "**/*.ts", - "**/*.tsx" - ], - "exclude": [ - "node_modules" - ] + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], + "exclude": ["node_modules"] } diff --git a/types/index.ts b/types/index.ts index ad5ed7ff..9a45c259 100644 --- a/types/index.ts +++ b/types/index.ts @@ -22,6 +22,12 @@ export interface IReferenceItem { } } } + rollups?: { + [rollupName: string]: { + details: string + } + } + transactionType?: string } export interface IReferenceItemMeta {