-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy path.echidna.yml
78 lines (78 loc) · 3.36 KB
/
.echidna.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# select the mode to test, which can be property, assertion, overflow, exploration, optimization
testMode: "assertion"
# check if some contract was destructed or not
testDestruction: false
# psender is the sender for property transactions; by default intentionally
# the same as contract deployer
psender: "0x10000"
# prefix is the prefix for Boolean functions that are properties to be checked
prefix: "echidna_"
# propMaxGas defines gas cost at which a property fails
# propMaxGas: 8000030
# testMaxGas is a gas limit; does not cause failure, but terminates sequence
# testMaxGas: 8000030
# maxGasprice is the maximum gas price
# maxGasprice: 0
# testLimit is the number of test sequences to run
testLimit: 100000
# stopOnFail makes echidna terminate as soon as any property fails and has been shrunk
stopOnFail: true
# estimateGas makes echidna perform analysis of maximum gas costs for functions (experimental)
estimateGas: false
# seqLen defines how many transactions are in a test sequence
seqLen: 100
# shrinkLimit determines how much effort is spent shrinking failing sequences
shrinkLimit: 5000
# coverage controls coverage guided testing
coverage: false
# format can be omitted (interactive UI), "text", "json"
# format: "text"
# contractAddr is the address of the contract itself
contractAddr: "0x00a329c0648769a73afac7f9381e08fb43dbea72"
# deployer is address of the contract deployer (who often is privileged owner, etc.)
deployer: "0x30000"
# sender is set of addresses transactions may originate from
sender: ["0x10000", "0x20000", "0x30000"]
# balanceAddr is default balance for addresses
balanceAddr: 0xffffffff
# balanceContract overrides balanceAddr for the contract address
balanceContract: 0
# codeSize max code size for deployed contracts (default 24576, per EIP-170)
codeSize: 0x6000
# solcArgs allows special args to solc
solcArgs: "--base-path=. --include-path=node_modules --error-codes"
# solcLibs is solc libraries
solcLibs: []
# cryticArgs allows special args to crytic
cryticArgs: []
# quiet produces (much) less verbose output
quiet: false
# initialize the blockchain with some data
initialize: null
# initialize the blockchain with some predeployed contracts in some addresses
deployContracts: []
# initialize the blockchain with some bytecode in some addresses
deployBytecodes: []
# whether ot not to use the multi-abi mode of testing
multi-abi: false
# timeout controls test timeout settings
timeout: null
# seed not defined by default, is the random seed
# seed: 0
# dictFreq controls how often to use echidna's internal dictionary vs random
# values
dictFreq: 0.40
# maximum time between generated txs; default is one week
maxTimeDelay: 604800
# maximum number of blocks elapsed between generated txs; default is expected increment in one week
maxBlockDelay: 60480
# list of methods to filter
filterFunctions: ["name", "symbol", "decimals", "totalSupply", "balanceOf", "allowance", "owner", "slope", "weight", "baseBuffer", "quoteBuffer", "agent", "agentShare", "agentTally", "royalties", "earnings", "fees", "operator", "tallies", "quoteBalanceOfContract", "beneficiaries", "shares"]
# by default, blacklist methods in filterFunctions
filterBlacklist: true
# directory to save the corpus; by default is disabled
corpusDir: null
# constants for corpus mutations (for experimentation only)
mutConsts: [1, 1, 1, 1]
# maximum value to send to payable functions
maxValue: 100000000000000000000 # 100 eth