Commit Graph

393 Commits

Author SHA1 Message Date
andri lim 5e6018b20b [skip ci] collectTouchedAccounts reduction 2020-01-19 19:17:37 +02:00
andri lim 20a138c270 [skip ci] change 'accountsToDelete' to 'touchedAccounts' 2020-01-19 19:17:37 +02:00
andri lim 2472662057 [skip ci] simplify rootHash usage 2020-01-19 19:17:37 +02:00
andri lim d37e37e5f3 [skip ci] simplify collectTouchedAccounts logic 2020-01-19 19:17:37 +02:00
andri lim 8f7597e23b [skip ci] add evmc CallKind to EVM Message 2020-01-19 19:17:37 +02:00
andri lim 836e087984 [skip ci] change storageAddress to contractAddres 2020-01-19 19:17:37 +02:00
andri lim 40ddbca1ee [skip ci] simplify EVM message creation 2020-01-19 19:17:37 +02:00
andri lim 3c33678949 add comment about evmc and touched accounts 2019-12-20 16:46:03 +02:00
andri lim 7be6a4ea63 gather suicides from child to parent computation 2019-12-20 16:46:03 +02:00
andri lim 9cb98d69ba accumulate refundGas after child computation done 2019-12-20 16:46:03 +02:00
kdeme 9964a55772 Replace getCurrentException 2019-12-05 13:02:21 +01:00
andri lim 93f6b99087
fixes #424 2019-11-23 20:41:10 +07:00
andri lim 0d743dc468
fixes 'collectTouchedAccounts' for Istanbul 2019-11-19 16:14:36 +07:00
andri lim 28514dbb28
fixes EIP2200 sentry gas comparison 2019-11-18 20:48:30 +07:00
andri lim 11f67f87fd
fixes EIP2200 gas cost and refund 2019-11-18 20:33:10 +07:00
andri lim d61bb49a40
fixes gas_costs for istanbul 2019-11-14 22:27:24 +07:00
andri lim c4dcf5da30
reduce compiler warnings 2019-11-13 21:49:39 +07:00
andri lim 61f340ae87 implement EIP2200's SSTORE and gas cost 2019-11-12 15:51:48 +00:00
andri lim c0c62b94b8 implement EIP-2200 stub 2019-11-12 15:51:48 +00:00
andri lim b5e8a8d61b implement 'chainId' opcode 2019-11-12 15:51:48 +00:00
andri lim 1e4f290cc6 implement 'selfBalance' opcode and gas cost 2019-11-12 15:51:48 +00:00
andri lim 4fbc9727d8 revert accidentally changed GasQuadDivisor 2019-11-12 15:51:48 +00:00
andri lim 1937fd700d implement EIP-2028 2019-11-12 15:51:48 +00:00
andri lim 078375061b implement EIP 1884 stub 2019-11-12 15:51:48 +00:00
andri lim 0bb6c73bdb implement EIP 1344 stub 2019-11-12 15:51:48 +00:00
andri lim cda3e2811f implement EIP 1108 2019-11-12 15:51:48 +00:00
andri lim b3cbf620d6 implement EIP-152 2019-11-12 15:51:48 +00:00
andri lim 3dbf41aac8 adding FkIstanbul to vm_forks gas_costs 2019-11-12 15:51:48 +00:00
andri lim dec3c7baee
fixes 32bit problem 2019-10-28 22:21:41 +07:00
Ștefan Talpalaru 70bcce2132
a couple of Nim 1.0.2-related fixes 2019-10-28 22:21:20 +07:00
andri lim 60b3ac15d6
simplify 'calldataload' implementation 2019-08-20 16:26:27 +07:00
andri lim e675182506 fixes 32 bit problem in test_helpers.nim and transaction_tracer.nim 2019-08-19 20:41:27 +03:00
andri lim 6ac750551e 'SAR' opcode uses new 'shr' from stint 2019-08-13 17:51:10 +03:00
andri lim 74d68ea425 fixes #72, simplify SDIV implementation 2019-08-13 17:48:25 +03:00
kdeme 1a3a29c419 Make EVMError Catchable and only catch CatchableError in the execPrecompiles 2019-07-19 15:18:25 +03:00
kdeme f6d784c8b0 Rework the getSignature of ecrecover 2019-07-19 15:18:25 +03:00
kdeme 26bc048fea Fix possible IndexError in ecrecover 2019-07-19 15:18:25 +03:00
kdeme f62816c4f3 Use of BlockNumber to be able to switch between UInt256 and int64 2019-07-10 20:56:05 +02:00
Ștefan Talpalaru 5ee668516a
add nim-metrics 2019-07-10 16:32:44 +02:00
Jacek Sieka 2763bd0dd5
std_shims -> stew 2019-07-07 12:12:01 +02:00
andri lim 7d74d38530 countLeadingZero become leadingZeros 2019-05-13 10:26:28 +03:00
andri lim 929b28b133 use ashr from nim-stint/#76 2019-05-13 10:26:28 +03:00
andri lim 58c4e16365 add some comments 2019-05-13 10:26:28 +03:00
andri lim 15f3a7fe37 remove unused .child from computation 2019-05-13 10:26:28 +03:00
andri lim 077fbe6b73 modexp cleanup 2019-05-13 10:26:28 +03:00
andri lim b7a1431c33 fix modexp gasFee 2019-05-13 10:26:28 +03:00
andri lim cd7143e9af fix modexp 2019-05-13 10:26:28 +03:00
andri lim a86979eaa3 fix create2 gasCost 2019-05-13 10:26:28 +03:00
andri lim e51725d13b fix extCodeHash 2019-05-13 10:26:28 +03:00
andri lim f08eedbce3 fix create2 nonce increment 2019-05-13 10:26:28 +03:00
andri lim 51edbe6390 fix shr and shl gasCost 2019-05-13 10:26:28 +03:00
andri lim 5f2be4231e implement EIP1014: Create2 opcode 2019-05-13 10:26:28 +03:00
andri lim 4a7f58c7dc implement constantinople bitwise opcode 2019-05-13 10:26:28 +03:00
andri lim 2f08a6bc0e fix byzantium contract creation OOG 2019-05-13 10:26:28 +03:00
andri lim fd8a649df3 fix RevertInCreateInInit problem 2019-05-13 10:26:28 +03:00
andri lim b34ad8b507 fix collectTouchedAccounts 2019-05-13 10:26:28 +03:00
andri lim f809a864b1 fix calcMemSize bug 2019-05-13 10:26:28 +03:00
andri lim 213fb3b971 constantinople's skeletal implementation 2019-05-13 10:26:28 +03:00
Ștefan Talpalaru 631f3ca29f
fix for Nim HEAD 2019-05-01 19:56:23 +02:00
andri lim cee0a38278
add some comment 2019-04-26 07:31:18 +07:00
andri lim 376957bea4
clean up unused code 2019-04-26 07:31:18 +07:00
andri lim 3ccd1b1ee9
fix rangeToPadded, GST +5 2019-04-26 07:31:17 +07:00
andri lim fd7c447f18
fix modexp output, GST +53 2019-04-26 07:31:16 +07:00
andri lim 89402af114
fix modexp gasCost, GST +6 2019-04-26 07:31:16 +07:00
andri lim 03ea1c5a85
fix ecRecover precompiles, GST +1 2019-04-26 07:31:15 +07:00
andri lim ba47d3c997
fix returnDataCopy gasCost, GST +11 2019-04-26 07:31:14 +07:00
andri lim 7b47cb6b24
various fixes, GST +6 2019-04-26 07:31:14 +07:00
andri lim 90e3a4320a
fix revert opcode at first level computation 2019-04-26 07:31:13 +07:00
andri lim c57295da0b
fix precompiles error handling, GST +262 2019-04-26 07:31:13 +07:00
andri lim ceb159f5fe
fix static context check in Call and Create, GST +52 2019-04-26 07:31:12 +07:00
andri lim 605618d9ee
add static context check, GST +94 -28 2019-04-26 07:31:12 +07:00
andri lim be5cce6c71
fix static call addr, GST +93 -16 2019-04-26 07:31:11 +07:00
andri lim 7940d443e9
implement EIP214: staticCall opcode 2019-04-26 07:31:10 +07:00
andri lim 52caf0c248
implement EIP211: returnDataCopy and returnDataSize opcode 2019-04-26 07:31:10 +07:00
andri lim d8284f9330
fix revert opcode 2019-04-26 07:31:09 +07:00
andri lim 13cd54a382
implement byzantium opcode dispatch 2019-04-26 07:31:03 +07:00
Ștefan Talpalaru 29a226da1e
more gcsafe pragmas for Nim HEAD 2019-04-26 00:18:51 +02:00
andri lim ec918602bc
fix accountsForDeletion iterator, GST +2 2019-04-18 13:23:04 +07:00
andri lim 1883472104
fix evm msg contract creation, GST +3 2019-04-18 12:42:37 +07:00
andri lim f7338b7d76
include miner address in touchedAccounts, GST +7 2019-04-18 11:12:21 +07:00
andri lim c07f01a74d
fix collectTouchedAccounts: msg.destination -> msg.storageAddress, GST +4 2019-04-18 10:22:48 +07:00
andri lim 6cf0cdf23a
implement EIP161 nonce incrementation, GST +65 2019-04-17 12:15:15 +07:00
andri lim 85d9bd3958
implement EIP158, GST -4 +81 2019-04-17 11:03:52 +07:00
andri lim 23d084da68
add SpuriousGasCosts table into forkToSchedule 2019-04-17 09:46:33 +07:00
Ștefan Talpalaru 8800cb5fe5
Merge branch 'fix_244' of github.com:jangko/nimbus into jangko-fix_244 2019-04-15 14:05:18 +02:00
andri lim 79630611c0
fixes #244 2019-04-15 11:34:41 +07:00
andri lim 69c1d9e357
fix block 2.463.413 problem 2019-04-15 11:10:40 +07:00
andri lim 34fd831d6f
fix block 2283416 problem 2019-04-15 10:11:09 +07:00
andri lim d039b88f48
activates Tangerine GST, GST +12 2019-04-08 08:06:40 +07:00
andri lim 7eafd75d17
separate tangerine whistle and spurious dragon opcode dispatcher 2019-04-08 08:06:40 +07:00
andri lim 6f51cf9103
implement EIP150 and EIP161 SelfDestruct OpCode 2019-04-08 08:06:39 +07:00
andri lim 77e9c18f91
implement Tangerine fork gas cost changes 2019-04-08 08:06:34 +07:00
andri lim a8d0a13856
fix fork comparison at postExecuteVM bug 2019-04-07 06:53:40 +07:00
andri lim d37d7fa6a5
remove computedGoto pragma 2019-04-04 17:23:28 +07:00
andri lim fb97d8d0ce
move exception handler to executeOpcodes 2019-04-04 15:26:12 +07:00
andri lim 039256de6a
more on continuation passsing 2019-04-04 15:21:24 +07:00
andri lim 60df7ea5e2
update test data 2019-04-04 12:13:33 +07:00
andri lim e5cca19e7f
tail call recursion with continuation passing 2019-04-04 11:44:35 +07:00
andri lim 4c0ba876ef
move exception handler deeper in the EVM 2019-04-04 10:50:25 +07:00
andri lim 07ac4620d9
remove 'var' modifier from 'computation: var BaseComputation' 2019-04-04 10:20:00 +07:00
andri lim 26b40f41e3
fix precompiles selection, GST +5 2019-04-02 13:11:00 +07:00
andri lim 112d2219df
reduce indirect call in EVM 2019-04-02 13:11:00 +07:00
andri lim 0f8affb7c9
remove explicit return value from VM 2019-04-02 13:11:00 +07:00
Ștefan Talpalaru 54b0242169
Merge branch 'fix_evm' of github.com:jangko/nimbus into jangko-fix_evm 2019-03-28 15:21:28 +01:00
Ștefan Talpalaru b16aba391a
Merge branch 'fix_maxcalldepth' of github.com:jangko/nimbus into jangko-fix_maxcalldepth 2019-03-28 15:09:51 +01:00
andri lim da88d498e3
fix MaxCallDepth comparison 2019-03-28 19:08:54 +07:00
andri lim 1ad4e256b2
fix self destruct refund gas problem 2019-03-28 19:07:30 +07:00
andri lim d9a9459d95
reduce stack usage 2019-03-28 19:06:38 +07:00
andri lim 527891cdb8
integrate snapshot with computation 2019-03-28 19:06:31 +07:00
andri lim a02cbdd91b
turn getAccountsForDeletion into interator 2019-03-21 09:50:51 +07:00
andri lim b6587bddfd
execComputation and applyMessage unification 2019-03-21 09:47:46 +07:00
andri lim be79bc8740
remove opCodeExec, use executeOpcodes 2019-03-21 09:32:48 +07:00
andri lim 4aaa6e6c94
computation simplification 2019-03-21 09:31:55 +07:00
andri lim b73a1238e0
interpreter dispatch simplification 2019-03-21 09:27:14 +07:00
Ștefan Talpalaru f62601e844
Merge branch 'non_recursive_evm' of github.com:jangko/nimbus into jangko-non_recursive_evm 2019-03-20 14:43:50 +01:00
andri lim 268695003b
fix writePaddedResult regression 2019-03-19 16:43:38 +07:00
andri lim 7198ce2d05
fix ecrecover bad V, GST +1 2019-03-18 19:28:42 +07:00
andri lim aed0db2d03
fix DelegateCall sender address, GST +37 2019-03-18 18:45:43 +07:00
andri lim 36fb75d042
fix DelegateCall gasCost, GST +6 2019-03-18 17:24:25 +07:00
andri lim 739e20253a
fix invalid opcodes bug, GST +1 2019-03-18 13:44:22 +07:00
andri lim 4f6f564626
fix regression 2019-03-18 13:13:16 +07:00
andri lim 4383831772
separate Frontier and Homestead opcode dispatcher 2019-03-18 11:27:32 +07:00
andri lim d0822c26d1
fix callcode insufficient funds, GST +6 2019-03-16 22:54:24 +07:00
andri lim 433ccba15f
fix writePaddedResult, GST +4 2019-03-16 21:42:06 +07:00
andri lim adb1286e28
fix create hash collision, GST +1 2019-03-16 12:13:57 +07:00
andri lim 99d128ca26
fix CREATE opcode gas cost 2019-03-15 22:15:40 +07:00
andri lim 823dd95a53
write contract unification 2019-03-15 18:16:47 +07:00
andri lim 0654a232a3
rename transferBalance to canTransfer 2019-03-14 16:24:27 +07:00
andri lim 039ab1ce71
refactor/relocate CALL/CREATE to reduce stack usage 2019-03-14 14:58:26 +07:00
Ștefan Talpalaru a67edd693a
assert() -> doAssert() 2019-03-13 22:36:54 +01:00
andri lim 4ed98e03d1
remove unneeded param from transferBalance 2019-03-13 22:14:10 +07:00
andri lim 44688259f1
simplify transferBalance again 2019-03-13 22:06:32 +07:00
andri lim 2f9f708f1b
simplify balance transfer 2019-03-13 21:34:53 +07:00
andri lim f1fac6be0f
remove redundant updateOpcodeExec 2019-03-13 21:15:13 +07:00
andri lim 1b3ca200fa
remove redundant execPrecompiles call 2019-03-13 21:10:16 +07:00
andri lim f5d6d6bc02 fix block 1317742 problem 2019-03-13 15:49:54 +02:00
andri lim 9f8191d408 EVM write contract transformation 2019-03-12 13:32:41 +02:00
andri lim b1da3576ad
fix block 1149150 problem 2019-03-11 18:50:13 +07:00
andri lim de809b0060
fix block 1017395 problem 2019-03-11 12:03:57 +07:00
andri lim a15805e41a fix applyCreateMessage 2019-02-28 10:04:49 +02:00
andri lim fc613b33df computation.nim cleanup 2019-02-28 10:04:49 +02:00
andri lim 4cc318d948 fix block 668910 problem 2019-02-28 10:04:49 +02:00
andri lim 9d6fb4c82e add comment to transaction tracer 2019-02-27 13:30:18 +02:00
andri lim 2c032ad1ab refactor utils 2019-02-27 13:30:18 +02:00
andri lim 9522c1145f
fix #245 again 2019-02-25 22:59:05 +07:00
andri lim 9fcba8f90d
fix block 512335 problem 2019-02-25 21:18:13 +07:00
andri lim 0d64e0a6c3
fix #245 2019-02-25 20:02:16 +07:00
andri lim 3dd18bd8ec
fix block 299804 problem 2019-02-25 17:03:43 +07:00
andri lim 592fa5df7e fix SIGNEXTEND opcode 2019-02-23 17:57:53 +02:00
andri lim bc675b1daa fix contract creation 2019-02-23 17:57:53 +02:00