Leonardo Alt
|
0b6eea0c55
|
Bool variables should not allow arithmetic comparison
|
2018-05-16 18:32:47 +02:00 |
|
chriseth
|
dac0029d16
|
ABI encoding functions are pure and should be usable in constants.
|
2018-05-15 14:45:54 +02:00 |
|
daniel
|
aa1542a9e1
|
Change bytes to unsigned in FixedBytesType
|
2018-05-03 23:11:34 +01:00 |
|
Alex Beregszaszi
|
b34428249a
|
Change numBits to unsigned IntegerType
|
2018-05-02 23:22:25 -07:00 |
|
Alex Beregszaszi
|
2c00ebbee1
|
Change totalBits and fractionalDigits to unsigned in FixedPointType
|
2018-05-02 23:22:25 -07:00 |
|
chriseth
|
8debded743
|
Revert "BREAKING: Bool variables should not allow arithmetic comparison"
|
2018-05-02 15:56:59 +02:00 |
|
chriseth
|
42289b642f
|
Merge pull request #4003 from ethereum/bool_vars_comparison
BREAKING: Bool variables should not allow arithmetic comparison
|
2018-05-02 15:56:06 +02:00 |
|
chriseth
|
15024154ab
|
Merge pull request #4018 from ethereum/disable-bytes0
Disable FixedBytesType(0) aka bytes0
|
2018-04-30 18:19:07 +02:00 |
|
Alex Beregszaszi
|
548bf2ff28
|
Remove unused function smallestTypeForLiteral
|
2018-04-30 14:35:26 +01:00 |
|
Alex Beregszaszi
|
e0b178e1c5
|
Disable FixedBytesType(0) aka bytes0
|
2018-04-30 12:23:30 +01:00 |
|
Leonardo Alt
|
ab251c7e7d
|
Bool variables should not allow arithmetic comparison
|
2018-04-27 11:35:58 +02:00 |
|
Alex Beregszaszi
|
5423974e87
|
Remove category check in FixedPointType:binaryOperatorResult as commonType handles the same
|
2018-04-20 17:54:34 +01:00 |
|
Jason Cobb
|
57003c534a
|
Types changes for fixed points
|
2018-04-20 17:53:42 +01:00 |
|
Alex Beregszaszi
|
754d79edfa
|
Disallow explicit conversion of bytesXX to contract
|
2018-04-19 15:58:14 +02:00 |
|
Erik Kundt
|
33fbf88707
|
Limits rational numbers to 4096 bits.
|
2018-04-16 11:45:55 +02:00 |
|
Alex Beregszaszi
|
d56acb68ab
|
Add abi.encode, abi.encodePacked, abi.encodeWithSelector and abi.encodeWithSignature.
|
2018-04-11 22:32:10 +02:00 |
|
Jason Cobb
|
3b7b962b66
|
Fix bug in typechecking when comparing rational literals
|
2018-04-11 12:03:08 +02:00 |
|
chriseth
|
5b1c0506fa
|
Allow `memory ` suffix for internal elementary type parsing.
|
2018-04-05 16:06:04 +02:00 |
|
chriseth
|
eb5b18e814
|
Generalize cycle detection.
|
2018-04-03 16:29:18 +02:00 |
|
chriseth
|
5bdadff0d8
|
Fix detection of recursive structs.
|
2018-04-03 16:27:28 +02:00 |
|
Jason Cobb
|
e37b619593
|
Set default fixed point decimal places to 18
|
2018-03-31 00:56:36 +01:00 |
|
chriseth
|
5c8a6aac69
|
Prevent encoding of weird types and support packed encoding of external function types.
|
2018-03-29 09:57:11 +01:00 |
|
Federico Bond
|
b79531bebf
|
Improve error message when trying to shift by fractional number
|
2018-03-22 10:05:49 -03:00 |
|
chriseth
|
cc2f71e4ac
|
Move dynamic type removal out of the type system.
|
2018-03-21 14:53:29 +00:00 |
|
chriseth
|
eecc26deec
|
Make external library functions accessible.
|
2018-03-13 17:18:46 +01:00 |
|
Daniel Kirchner
|
fb4d01e2cd
|
Add gasleft to FunctionType::richIdentifier().
|
2018-03-06 17:29:04 +01:00 |
|
chriseth
|
08b6a72d37
|
Fix multi-dimensional arrays in the ABI.
|
2018-03-01 14:28:27 +01:00 |
|
Alex Beregszaszi
|
b62d43912b
|
Merge pull request #3589 from ethereum/identifiers
Clean up type identifiers
|
2018-02-26 20:27:26 +01:00 |
|
Alex Beregszaszi
|
b471983e3c
|
Use new escaping helpers for type identifiers
|
2018-02-26 19:09:43 +01:00 |
|
Alex Beregszaszi
|
2e7067fbe4
|
Rename Types::identifier to Types::richIdentifier
|
2018-02-26 19:09:43 +01:00 |
|
Alex Beregszaszi
|
751705978e
|
Add helpers escapeIdentifier to Types
|
2018-02-26 19:09:39 +01:00 |
|
chriseth
|
4da20bdf01
|
Fix: Function types for getters should not have storage pointers.
|
2018-02-26 11:17:40 +01:00 |
|
chriseth
|
917dd28eef
|
Simplify FunctionType constructors.
|
2018-02-26 10:45:41 +01:00 |
|
chriseth
|
560fbd0df1
|
Always use shortened literal number representation.
|
2018-02-13 11:43:47 +01:00 |
|
Federico Bond
|
a320ffeafd
|
Avoid output messages size blow-up using huge bignums literals
|
2018-02-12 22:53:33 +00:00 |
|
Kwang Yul Seo
|
d70ff5f8c3
|
Remove a redundant check
m_type can't be FunctionType::Kind::DelegateCall.
|
2017-11-13 09:54:55 +09:00 |
|
Alex Beregszaszi
|
475b818801
|
Remove obsolete createTypeError in AST
|
2017-10-05 20:18:46 +01:00 |
|
Alex Beregszaszi
|
09276cb9d3
|
Do not add members of address to contracts in experimental 0.5.0
|
2017-10-05 11:42:34 +01:00 |
|
Alex Beregszaszi
|
a9847c9551
|
Use solAssert and not assert
|
2017-10-04 13:05:55 +01:00 |
|
Alex Beregszaszi
|
d5d1a08b09
|
Pull out helper to apply address member to contract members
|
2017-09-28 14:54:15 +01:00 |
|
Alex Beregszaszi
|
aa6de49457
|
Simplify address overloading
|
2017-09-28 14:53:41 +01:00 |
|
Alex Beregszaszi
|
ee65ecfb3b
|
Ensure that address types are always declared as 160bit
|
2017-09-26 22:46:33 +01:00 |
|
chriseth
|
0696545808
|
Check for interface types of members and cache recursion check.
|
2017-09-16 12:31:13 +01:00 |
|
chriseth
|
70d70e7816
|
Implement struct encoder.
|
2017-09-16 12:31:12 +01:00 |
|
chriseth
|
36a90289e6
|
Fix interface type conversion internal to structs.
|
2017-09-16 12:12:43 +01:00 |
|
chriseth
|
080be885f8
|
Function signatures containing structs.
|
2017-09-16 12:12:43 +01:00 |
|
chriseth
|
59ea19b3b9
|
Check for recursive structs.
|
2017-09-16 12:12:43 +01:00 |
|
chriseth
|
2e72bd163a
|
Allow structs as part of function interfaces.
|
2017-09-16 12:12:43 +01:00 |
|
Alex Beregszaszi
|
fd1f8ab38b
|
Rename .sig to .selector on function types
|
2017-09-13 11:40:57 +01:00 |
|
Alex Beregszaszi
|
58f7a27ee0
|
Add sig member on function type
|
2017-09-13 11:40:57 +01:00 |
|
chriseth
|
93b1cc9702
|
Merge pull request #2833 from ethereum/statemutability-builtins
Mark all built in functions with appropriate statemutability
|
2017-08-29 15:24:51 +02:00 |
|
Alex Beregszaszi
|
7fb4a64136
|
Move all file specific globals to anonymous namespace
|
2017-08-29 11:09:18 +01:00 |
|
Alex Beregszaszi
|
79e84a8fa4
|
Swap declaration/statemutability in FunctionType constructor
|
2017-08-28 19:43:35 +01:00 |
|
Alex Beregszaszi
|
aa94000a91
|
Mark all built in functions with appropriate statemutability
|
2017-08-28 19:43:35 +01:00 |
|
Alex Beregszaszi
|
c7cb00d49a
|
Mark event non-payable and not view
|
2017-08-28 16:37:45 +01:00 |
|
Alex Beregszaszi
|
f2d6226718
|
Some smaller issues found by Covertiy Scan
|
2017-08-22 13:55:28 +01:00 |
|
Alex Beregszaszi
|
b25f0c52ac
|
Reject the creation of interface with the new statement
|
2017-08-21 23:02:18 +01:00 |
|
Alex Beregszaszi
|
93be0dd923
|
FunctionType comparison/identifer to support all statemutability levels
|
2017-08-16 17:23:08 +01:00 |
|
chriseth
|
2411f5d839
|
Merge pull request #2704 from ethereum/newEncoder
New ABI encoder
|
2017-08-14 17:04:00 +02:00 |
|
Alex Beregszaszi
|
a26a5f20ce
|
Remove constant/payable in all function types
|
2017-08-14 14:21:47 +01:00 |
|
Alex Beregszaszi
|
2a9ba937ba
|
Replace constant/payable with StateMutability in AST
|
2017-08-14 14:21:47 +01:00 |
|
chriseth
|
77b26552b1
|
Allow multi-dimensional arrays in interfaces.
|
2017-08-14 12:44:25 +02:00 |
|
chriseth
|
a7a9ed4718
|
Merge pull request #2727 from ethereum/simplify-types
Simplify if/else statements in Types
|
2017-08-11 11:46:16 +02:00 |
|
Alex Beregszaszi
|
3dcf089c3f
|
Simplify if/else statements in Types
|
2017-08-10 19:14:33 +01:00 |
|
gubatron
|
ad7a63f890
|
FunctionType operator== boolean refactor
|
2017-08-10 17:04:40 +01:00 |
|
Alex Beregszaszi
|
1b32cdcf21
|
Check for payable when comparing function types
|
2017-08-10 17:03:45 +01:00 |
|
chriseth
|
b38f31617e
|
Add isDynamicallyEncoded member function to types.
|
2017-08-09 23:18:42 +01:00 |
|
Alex Beregszaszi
|
b7642dc8a7
|
Disallow gas modifier on sha255/ripemd160/ecrecover
|
2017-08-01 20:55:01 +01:00 |
|
Alex Beregszaszi
|
6d37f30d76
|
Rename Bare to Barecall
|
2017-08-01 10:47:10 +01:00 |
|
Alex Beregszaszi
|
d4e44ecb46
|
Disallow externalSignature for fallback functions
|
2017-07-27 21:52:58 +01:00 |
|
Alex Beregszaszi
|
8098030986
|
Use solAssert instead of boost throw where possible
|
2017-07-26 22:23:21 +01:00 |
|
chriseth
|
72917c4f35
|
Cleanup fixed point type changes
|
2017-07-19 22:13:42 +01:00 |
|
VoR0220
|
78769f3b39
|
Change fixed point types to have digit count
Signed-off-by: VoR0220 <rj@erisindustries.com>
|
2017-07-19 21:49:01 +01:00 |
|
Alex Beregszaszi
|
cb4875a28b
|
Issue error properly for oversized arrays for calldata
|
2017-07-13 22:33:46 +02:00 |
|
Federico Bond
|
f20b150f38
|
Add type error when attempting value transfer to a non-payable contract
|
2017-07-12 23:57:53 -03:00 |
|
chriseth
|
01a1296e90
|
Helper functions.
|
2017-07-11 11:24:41 +02:00 |
|
chriseth
|
4407a13c17
|
Only allow equality checks for internal function types.
|
2017-06-26 16:30:37 +02:00 |
|
chriseth
|
f47e6e90fb
|
Disallow comparisons between some types.
|
2017-06-26 16:30:36 +02:00 |
|
Alex Beregszaszi
|
d5f8ce90c7
|
Merge interface/Exceptions and interface/Utils
|
2017-06-22 11:25:07 +01:00 |
|
chriseth
|
dea7b864e6
|
Compact format for AST-Json with backwards compatibility
|
2017-05-17 11:14:33 +02:00 |
|
Alex Beregszaszi
|
3ae88377d6
|
Change references to FunctionType::Location
|
2017-03-16 12:49:52 +00:00 |
|
Alex Beregszaszi
|
7123f25210
|
Rename FunctionType::Location to FunctionType::Kind
|
2017-03-16 12:49:17 +00:00 |
|
chriseth
|
0c8a766146
|
Merge pull request #1698 from ethereum/exp-notation
Fix scientific notation in number literals
|
2017-03-15 14:55:45 +01:00 |
|
Alex Beregszaszi
|
e923f27ea8
|
Split out parseRational from isValidLiteral
|
2017-03-15 13:06:27 +00:00 |
|
Alex Beregszaszi
|
dde87de4cf
|
Rename x to value
|
2017-03-15 13:06:27 +00:00 |
|
Alex Beregszaszi
|
a2b9f52ca4
|
Disallow radix points in hex literals
|
2017-03-15 13:06:27 +00:00 |
|
Alex Beregszaszi
|
07045d492f
|
Do not try parsing hex numbers as scientific notation
|
2017-03-15 13:06:27 +00:00 |
|
Alex Beregszaszi
|
dfc8f890bf
|
Support older version of boost
|
2017-03-15 13:06:27 +00:00 |
|
Alex Beregszaszi
|
1083e6da68
|
Support negative exponent
|
2017-03-15 13:06:26 +00:00 |
|
Alex Beregszaszi
|
924a8fff6b
|
Fix exponentional notation in number literals
|
2017-03-15 13:06:24 +00:00 |
|
chriseth
|
f39763e91c
|
Type checking for pure expressions.
|
2017-03-13 13:30:21 +01:00 |
|
Ryan Casey
|
fe8d09a3c1
|
Fix 'ambiguous overload for operator==' Boost error.
|
2017-03-09 17:04:26 -08:00 |
|
chriseth
|
a689152c4b
|
Convert reference types to pointers in member function conversion.
|
2017-03-01 16:02:36 +01:00 |
|
chriseth
|
d2c79bf8e9
|
Merge pull request #1700 from ethereum/fixNoMobile
Some checks for the existence of mobile type.
|
2017-02-24 15:50:45 +01:00 |
|
chriseth
|
92bf5154fd
|
Merge branch 'develop' into fixNoMobile
|
2017-02-24 10:39:55 +01:00 |
|
Alex Beregszaszi
|
4d290e551c
|
Disallow setting .gas() on .transfer()
|
2017-02-24 00:27:36 +00:00 |
|
Alex Beregszaszi
|
81006dae98
|
Support gas modifier on addr.transfer()
|
2017-02-24 00:18:18 +00:00 |
|
Alex Beregszaszi
|
4264625c69
|
Implement address.transfer()
|
2017-02-24 00:17:45 +00:00 |
|
chriseth
|
c3c3cccbec
|
Fix early exist for fatal errors.
|
2017-02-16 14:57:00 +01:00 |
|
chriseth
|
dcc16c81e2
|
Some checks for the existence of mobile type.
|
2017-02-16 11:46:27 +01:00 |
|
Alex Beregszaszi
|
f3158f92d6
|
Support revert()
|
2017-02-10 22:40:42 +00:00 |
|
Alex Beregszaszi
|
767ec1d670
|
Support explicit conversion of external function type to address
|
2017-02-01 12:23:47 +00:00 |
|
chriseth
|
a9c6ff4ac8
|
Refactor json return type generation.
|
2017-01-26 18:21:19 +01:00 |
|
chriseth
|
1316bb7565
|
Warn about invalid checksums of addresses.
|
2017-01-24 23:37:48 +01:00 |
|
chriseth
|
7159944f0f
|
Reset AST node IDs between compilation runs.
|
2017-01-20 12:00:16 +01:00 |
|
chriseth
|
da178d967f
|
Properly escape user strings and lists.
|
2017-01-19 13:23:58 +01:00 |
|
chriseth
|
3fed790a56
|
Type identifiers.
|
2017-01-19 13:23:57 +01:00 |
|
chriseth
|
2738045030
|
Cleaner shift handling and type conversion for binary operations.
|
2016-12-12 11:12:12 +01:00 |
|
chriseth
|
2df60bec92
|
Type after shift should be type of left operand.
|
2016-12-12 11:12:12 +01:00 |
|
Alex Beregszaszi
|
b8b4f5e9f9
|
Support bitshifting in variables
|
2016-12-12 11:12:10 +01:00 |
|
Alex Beregszaszi
|
a9e92cb686
|
Rename dev::validate to dev::validateUTF8
|
2016-11-28 22:28:21 +00:00 |
|
Alex Beregszaszi
|
c01426efec
|
Make position optional in dev::validate
|
2016-11-28 22:27:55 +00:00 |
|
chriseth
|
da566b956e
|
Indentation.
|
2016-11-25 14:36:44 +01:00 |
|
Yoichi Hirai
|
e136ec8704
|
ast: string literals that are not valid UTF are not convertible to strings
|
2016-11-25 13:36:06 +01:00 |
|
VoR0220
|
3f9f725737
|
Fix licensing headers
Signed-off-by: VoR0220 <rj@erisindustries.com>
|
2016-11-23 12:22:33 +01:00 |
|
chriseth
|
2c14a96820
|
Some more assertions and style changes.
|
2016-11-16 15:09:01 +01:00 |
|
chriseth
|
ec31d08775
|
Change encoding to address-funid and add "function" as ABI type.
|
2016-11-16 14:37:19 +01:00 |
|
chriseth
|
22b4d1b29a
|
Check that no internals are used in any external function type.
|
2016-11-16 14:37:18 +01:00 |
|
chriseth
|
925d674146
|
Disallow payable internal functions.
|
2016-11-16 14:37:18 +01:00 |
|
chriseth
|
f21f794f3c
|
delete for function types
|
2016-11-16 14:37:18 +01:00 |
|
chriseth
|
ff3553a348
|
Change alignment.
|
2016-11-16 14:37:18 +01:00 |
|
chriseth
|
62492b67e7
|
Changelog entry and small fixes.
|
2016-11-16 14:37:18 +01:00 |
|
chriseth
|
6f19559de0
|
Fix some type checks and tests for internal / external function parameters.
|
2016-11-16 14:37:17 +01:00 |
|
chriseth
|
dd173f83e3
|
Code generator for function types.
|
2016-11-16 14:37:17 +01:00 |
|
chriseth
|
cc8583ec7d
|
Function types.
|
2016-11-16 14:37:17 +01:00 |
|
Alex Sinyagin
|
6db9fd498a
|
Print canonical names of structs and enums in AST
|
2016-11-14 13:39:46 +00:00 |
|
Yoichi Hirai
|
20c2ca3992
|
ast, codegen: disallow conversion between different enum types
|
2016-11-11 17:48:03 +01:00 |
|
Yoichi Hirai
|
e6098f0039
|
ast: add EnumType::numberOfMembers()
|
2016-11-11 17:47:48 +01:00 |
|
Yoichi Hirai
|
6c15757618
|
Type checker: move the burden of computing mobile type to commonType
This solves #621
|
2016-11-11 15:51:54 +01:00 |
|
Yoichi Hirai
|
3ca5900b8c
|
ast: ban signed EXP, fixing #1246
|
2016-10-25 16:49:10 +02:00 |
|
chriseth
|
f25aa0c68b
|
More checks for missing mobile type.
|
2016-10-24 16:45:25 +02:00 |
|
chriseth
|
2b00804d1d
|
Fix crash in throw.
|
2016-10-24 14:32:49 +02:00 |
|
Yoichi Hirai
|
7887045a48
|
ast: simplifications suggested by @chriseth
|
2016-10-20 16:09:52 +02:00 |
|
Yoichi Hirai
|
ff9039b2a8
|
When a contract type is super, its members do not contain the functions of itself
Fixes #1151
|
2016-10-20 16:09:52 +02:00 |
|
Alex Beregszaszi
|
7ac27c957e
|
Use >> (SAR) to denote constant shifts
|
2016-10-20 00:03:09 +01:00 |
|
Alex Beregszaszi
|
33250eef9e
|
Reject negative shifts within constants
|
2016-10-20 00:03:09 +01:00 |
|
RJ
|
48f2028911
|
Support shifting constants
|
2016-10-20 00:03:09 +01:00 |
|
Alex Beregszaszi
|
fdd1108c1c
|
Omit non-convertible bound functions
|
2016-10-19 10:41:04 +01:00 |
|
Alex Beregszaszi
|
003359a0b6
|
Ensure that bound functions cannot be defined without self type
|
2016-10-19 10:41:04 +01:00 |
|
Yoichi Hirai
|
8e11bac8de
|
Check if a fixedBytes fits an integer type
before looking up the size of the integer type.
Fixes #1150.
|
2016-10-13 20:17:13 +02:00 |
|
Alex Beregszaszi
|
aefb6e5fcf
|
Rename dev::sha3 to dev::keccak256
|
2016-10-06 14:53:40 +01:00 |
|
Alex Beregszaszi
|
2d9c407456
|
Include assert for selfType on bound functions to avoid crash
|
2016-09-06 22:10:51 +01:00 |
|
chriseth
|
9c64edf110
|
Change function type to include and propagate payable and constant modifier.
|
2016-09-05 21:28:28 +02:00 |
|
Alex Beregszaszi
|
962531af96
|
Merged in changes from chriseth/payable
|
2016-09-05 21:28:28 +02:00 |
|
Alex Beregszaszi
|
a34f2f1a31
|
Support payable keyword for functions
|
2016-09-05 21:28:18 +02:00 |
|
Denton Liu
|
faf0b3f669
|
Remove After from Types.cpp
|
2016-08-11 10:15:59 -04:00 |
|
Alex Beregszaszi
|
5d9347f022
|
Remove dev::utf8 namespace
|
2016-08-08 20:05:31 +01:00 |
|
Alex Beregszaszi
|
f1df3dee53
|
Use size_t in dev::utf8::validate()
|
2016-08-08 20:05:31 +01:00 |
|
Alex Beregszaszi
|
e8c2e87397
|
Use utf8::validate in StringLiteral::toString
|
2016-08-08 19:57:41 +01:00 |
|
Alex Beregszaszi
|
bf76321c9e
|
Move LiteralString::toString from the header
|
2016-08-08 19:08:31 +01:00 |
|