2020-06-30 08:12:51 +00:00
// Copyright 2020 The go-ethereum Authors
2022-05-24 18:39:40 +00:00
// This file is part of go-ethereum.
2020-06-30 08:12:51 +00:00
//
2022-05-24 18:39:40 +00:00
// go-ethereum is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
2020-06-30 08:12:51 +00:00
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
2022-05-24 18:39:40 +00:00
// go-ethereum is distributed in the hope that it will be useful,
2020-06-30 08:12:51 +00:00
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2022-05-24 18:39:40 +00:00
// GNU General Public License for more details.
2020-06-30 08:12:51 +00:00
//
2022-05-24 18:39:40 +00:00
// You should have received a copy of the GNU General Public License
// along with go-ethereum. If not, see <http://www.gnu.org/licenses/>.
2020-06-30 08:12:51 +00:00
package t8ntool
import (
"fmt"
"strings"
"github.com/ethereum/go-ethereum/core/vm"
"github.com/ethereum/go-ethereum/tests"
2022-06-27 16:22:36 +00:00
"github.com/urfave/cli/v2"
2020-06-30 08:12:51 +00:00
)
var (
2022-06-27 16:22:36 +00:00
TraceFlag = & cli . BoolFlag {
2020-06-30 08:12:51 +00:00
Name : "trace" ,
2023-12-18 14:16:25 +00:00
Usage : "Configures the use of the JSON opcode tracer. This tracer emits traces to files as trace-<txIndex>-<txHash>.jsonl" ,
2020-06-30 08:12:51 +00:00
}
2023-12-18 14:16:25 +00:00
TraceTracerFlag = & cli . StringFlag {
Name : "trace.tracer" ,
Usage : "Configures the use of a custom tracer, e.g native or js tracers. Examples are callTracer and 4byteTracer. These tracers emit results into files as trace-<txIndex>-<txHash>.json" ,
}
TraceTracerConfigFlag = & cli . StringFlag {
Name : "trace.jsonconfig" ,
Usage : "The configurations for the custom tracer specified by --trace.tracer. If provided, must be in JSON format" ,
2021-11-24 09:15:23 +00:00
}
2022-06-27 16:22:36 +00:00
TraceEnableMemoryFlag = & cli . BoolFlag {
2021-11-24 09:15:23 +00:00
Name : "trace.memory" ,
Usage : "Enable full memory dump in traces" ,
2020-06-30 08:12:51 +00:00
}
2022-06-27 16:22:36 +00:00
TraceDisableStackFlag = & cli . BoolFlag {
2020-06-30 08:12:51 +00:00
Name : "trace.nostack" ,
Usage : "Disable stack output in traces" ,
}
2022-06-27 16:22:36 +00:00
TraceEnableReturnDataFlag = & cli . BoolFlag {
2021-11-24 09:15:23 +00:00
Name : "trace.returndata" ,
Usage : "Enable return data output in traces" ,
2020-07-16 12:06:19 +00:00
}
2022-06-27 16:22:36 +00:00
OutputBasedir = & cli . StringFlag {
2020-08-19 09:31:13 +00:00
Name : "output.basedir" ,
Usage : "Specifies where output files are placed. Will be created if it does not exist." ,
Value : "" ,
}
2022-06-27 16:22:36 +00:00
OutputBodyFlag = & cli . StringFlag {
2021-02-25 14:26:57 +00:00
Name : "output.body" ,
Usage : "If set, the RLP of the transactions (block body) will be written to this file." ,
Value : "" ,
}
2022-06-27 16:22:36 +00:00
OutputAllocFlag = & cli . StringFlag {
2020-06-30 08:12:51 +00:00
Name : "output.alloc" ,
Usage : "Determines where to put the `alloc` of the post-state.\n" +
"\t`stdout` - into the stdout output\n" +
"\t`stderr` - into the stderr output\n" +
"\t<file> - into the file <file> " ,
Value : "alloc.json" ,
}
2022-06-27 16:22:36 +00:00
OutputResultFlag = & cli . StringFlag {
2020-06-30 08:12:51 +00:00
Name : "output.result" ,
Usage : "Determines where to put the `result` (stateroot, txroot etc) of the post-state.\n" +
"\t`stdout` - into the stdout output\n" +
"\t`stderr` - into the stderr output\n" +
"\t<file> - into the file <file> " ,
Value : "result.json" ,
}
2022-06-27 16:22:36 +00:00
OutputBlockFlag = & cli . StringFlag {
2021-11-22 08:25:35 +00:00
Name : "output.block" ,
Usage : "Determines where to put the `block` after building.\n" +
"\t`stdout` - into the stdout output\n" +
"\t`stderr` - into the stderr output\n" +
"\t<file> - into the file <file> " ,
Value : "block.json" ,
}
2022-06-27 16:22:36 +00:00
InputAllocFlag = & cli . StringFlag {
2020-06-30 08:12:51 +00:00
Name : "input.alloc" ,
Usage : "`stdin` or file name of where to find the prestate alloc to use." ,
Value : "alloc.json" ,
}
2022-06-27 16:22:36 +00:00
InputEnvFlag = & cli . StringFlag {
2020-06-30 08:12:51 +00:00
Name : "input.env" ,
Usage : "`stdin` or file name of where to find the prestate env to use." ,
Value : "env.json" ,
}
2022-06-27 16:22:36 +00:00
InputTxsFlag = & cli . StringFlag {
2021-08-07 21:04:34 +00:00
Name : "input.txs" ,
Usage : "`stdin` or file name of where to find the transactions to apply. " +
2021-11-22 08:25:35 +00:00
"If the file extension is '.rlp', then the data is interpreted as an RLP list of signed transactions." +
2021-08-07 21:04:34 +00:00
"The '.rlp' format is identical to the output.body format." ,
2020-06-30 08:12:51 +00:00
Value : "txs.json" ,
}
2022-06-27 16:22:36 +00:00
InputHeaderFlag = & cli . StringFlag {
2021-11-22 08:25:35 +00:00
Name : "input.header" ,
Usage : "`stdin` or file name of where to find the block header to use." ,
Value : "header.json" ,
}
2022-06-27 16:22:36 +00:00
InputOmmersFlag = & cli . StringFlag {
2021-11-22 08:25:35 +00:00
Name : "input.ommers" ,
Usage : "`stdin` or file name of where to find the list of ommer header RLPs to use." ,
}
2023-01-25 14:32:25 +00:00
InputWithdrawalsFlag = & cli . StringFlag {
Name : "input.withdrawals" ,
Usage : "`stdin` or file name of where to find the list of withdrawals to use." ,
}
2022-06-27 16:22:36 +00:00
InputTxsRlpFlag = & cli . StringFlag {
2021-11-22 08:25:35 +00:00
Name : "input.txs" ,
Usage : "`stdin` or file name of where to find the transactions list in RLP form." ,
Value : "txs.rlp" ,
}
2022-06-27 16:22:36 +00:00
SealCliqueFlag = & cli . StringFlag {
2021-11-22 08:25:35 +00:00
Name : "seal.clique" ,
Usage : "Seal block with Clique. `stdin` or file name of where to find the Clique sealing data." ,
}
2022-06-27 16:22:36 +00:00
RewardFlag = & cli . Int64Flag {
2020-06-30 08:12:51 +00:00
Name : "state.reward" ,
Usage : "Mining reward. Set to -1 to disable" ,
Value : 0 ,
}
2022-06-27 16:22:36 +00:00
ChainIDFlag = & cli . Int64Flag {
2020-06-30 08:12:51 +00:00
Name : "state.chainid" ,
Usage : "ChainID to use" ,
Value : 1 ,
}
2022-06-27 16:22:36 +00:00
ForknameFlag = & cli . StringFlag {
2020-06-30 08:12:51 +00:00
Name : "state.fork" ,
Usage : fmt . Sprintf ( "Name of ruleset to use." +
"\n\tAvailable forknames:" +
"\n\t %v" +
"\n\tAvailable extra eips:" +
"\n\t %v" +
"\n\tSyntax <forkname>(+ExtraEip)" ,
strings . Join ( tests . AvailableForks ( ) , "\n\t " ) ,
strings . Join ( vm . ActivateableEips ( ) , ", " ) ) ,
2022-06-15 11:10:38 +00:00
Value : "GrayGlacier" ,
2020-06-30 08:12:51 +00:00
}
2022-06-27 16:22:36 +00:00
VerbosityFlag = & cli . IntFlag {
2020-06-30 08:12:51 +00:00
Name : "verbosity" ,
Usage : "sets the verbosity level" ,
Value : 3 ,
}
)