chriseth
c8232d9759
Disallow conversion between unrelated contract types.
2018-08-01 11:04:35 +01:00
Leonardo Alt
0075f4239a
Address members not accessible by contract instance
2018-07-17 13:33:23 +01:00
Cryptomental
140dbfdbd8
Code, Changelog, ReleaseChecklist: Fix typos.
...
Refs: #4442
2018-07-11 00:26:23 +02:00
chriseth
23c4142005
Bare functions take single bytes argument.
2018-06-25 17:01:45 +02:00
chriseth
0e66a1ddde
Single bytes argument.
...
In 0.5.0 mode, only accept a single bytes argument for ``.call``,
``keccak256`` and others and do not pad when encoding.
2018-06-25 17:01:45 +02:00
Erik Kundt
34b5eca1f8
Improves assembly and adds more tests.
2018-05-30 17:40:33 +02:00
bitshift
e9dcfb0b62
Implements pop() for value type arrays.
2018-05-29 12:53:02 +02:00
mingchuan
9865012f7b
Allow data location suffix for internal elementary type parsing
2018-05-22 23:28:12 +08:00
chriseth
894122c508
Warn/enforce single bytes argument for certain builtins (hashing functions).
...
In 0.5.0 mode, only accept a single bytes argument for ``.call``,
``keccak256`` and others and do not pad when encoding.
2018-05-16 09:48:03 +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
Alexander Arlt
f94b793472
Add virtual destructors on base classes.
2018-05-02 13:29:16 +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
Jason Cobb
57003c534a
Types changes for fixed points
2018-04-20 17:53:42 +01:00
chriseth
44416d1ac6
Merge pull request #2980 from ethereum/abi-api
...
Add abi.encode and abi.encodePacked
2018-04-12 20:55:03 +02:00
Alex Beregszaszi
d56acb68ab
Add abi.encode, abi.encodePacked, abi.encodeWithSelector and abi.encodeWithSignature.
2018-04-11 22:32:10 +02:00
Daniel Kirchner
daa69df447
Error on invalid arithmetic with constant expressions.
2018-04-11 21:17:10 +02:00
hydai
aaa8edc36d
Fixed typos
2018-04-10 13:41:35 +08:00
chriseth
5b1c0506fa
Allow `memory
` suffix for internal elementary type parsing.
2018-04-05 16:06:04 +02:00
chriseth
6777f7a57f
Optimize across MLOAD if MSIZE is not used.
2018-04-03 14:34:32 +02:00
chriseth
5c8a6aac69
Prevent encoding of weird types and support packed encoding of external function types.
2018-03-29 09:57:11 +01:00
chriseth
cc2f71e4ac
Move dynamic type removal out of the type system.
2018-03-21 14:53:29 +00:00
Daniel Kirchner
c633c0eacb
Move msg.gas to global function gasleft(). Closes #2971 .
2018-03-05 11:18:04 +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
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
Alex Beregszaszi
5226d54ed1
Improve error message for constant evaluator
2017-12-12 09:39:26 +00:00
Kwang Yul Seo
486647fd38
Remove unused method
...
The body of Function::functionIdentifier is missing and is not used.
2017-11-12 22:27:05 +09:00
Alex Beregszaszi
d5d1a08b09
Pull out helper to apply address member to contract members
2017-09-28 14:54:15 +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
6385641f6e
Fix tests.
2017-09-16 12:31:12 +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
5470da4d9a
View-pure checker.
2017-09-06 13:50:49 +02:00
Alex Beregszaszi
79e84a8fa4
Swap declaration/statemutability in FunctionType constructor
2017-08-28 19:43:35 +01:00
chriseth
4b0e30d259
Cleanup of Common.h
2017-08-25 14:54:23 +02:00
Alex Beregszaszi
efe4d68a7b
Introduce view (and keep constant as an alias)
2017-08-22 18:24:22 +01: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
b38f31617e
Add isDynamicallyEncoded member function to types.
2017-08-09 23:18:42 +01:00
Alex Beregszaszi
6d37f30d76
Rename Bare to Barecall
2017-08-01 10:47:10 +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
b7a59652f1
Merge pull request #2501 from ethereum/undef-macros
...
Move UndefMacros from libdevcore to libsolidity/parsing
2017-07-12 15:07:20 +02:00
chriseth
01a1296e90
Helper functions.
2017-07-11 11:24:41 +02:00
Alex Beregszaszi
b615b01449
Move UndefMacros from libdevcore to libsolidity/parsing
2017-07-02 00:09:46 +01:00
chriseth
f47e6e90fb
Disallow comparisons between some types.
2017-06-26 16:30:36 +02: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
Yoichi Hirai
d134fda0c0
Merge pull request #1729 from ethereum/constantvariables
...
Only allow pure expressions for constant state variables.
2017-03-15 10:03:35 +01:00
chriseth
47cd8964b8
Require and Assert.
2017-03-14 14:21:33 +01:00
chriseth
f39763e91c
Type checking for pure expressions.
2017-03-13 13:30:21 +01:00
Alex Beregszaszi
4264625c69
Implement address.transfer()
2017-02-24 00:17:45 +00:00
Alex Beregszaszi
f3158f92d6
Support revert()
2017-02-10 22:40:42 +00:00
Alex Beregszaszi
f8461e9e31
Implement assert as a global function
2017-02-10 13:29:17 +00:00
Alex Beregszaszi
c01f5699e6
Add isNegative to RationalNumberType
2017-02-02 00:16:50 +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
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
Federico Bond
05139500fb
Warn about using msg.value in non-payable function
2016-12-08 16:22:13 -03: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
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
f21f794f3c
delete for function types
2016-11-16 14:37:18 +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
Yoichi Hirai
e6098f0039
ast: add EnumType::numberOfMembers()
2016-11-11 17:47:48 +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
d2470a3e39
super
's size on stack is zero, because the expression compiler does not push an address.
...
This is different from `this`, which is translated to `ADDRESS` instruction.
2016-10-18 14:17:49 +02:00
chriseth
9c64edf110
Change function type to include and propagate payable and constant modifier.
2016-09-05 21:28:28 +02:00
Alex Beregszaszi
a34f2f1a31
Support payable keyword for functions
2016-09-05 21:28:18 +02:00
Alex Beregszaszi
bf76321c9e
Move LiteralString::toString from the header
2016-08-08 19:08:31 +01:00
chriseth
754a992500
Inaccessible dynamic types
2016-06-02 12:52:25 +02:00
chriseth
708129abd5
Fixes for invalid cleanups for small types.
2016-05-20 16:52:40 +02:00
chriseth
d4206b7cd0
Remove unused tests and add asserts for not implemented parts in code generation.
...
quick fix on christian's rational
change so that ubuntu will stop yelling
be more specific with rational declaration for Windows sake
rational in namespace correction for windows
2016-05-10 16:03:33 -05:00
chriseth
656405240e
Simplify interface of RationalNumber.
2016-05-10 19:40:37 +02:00
chriseth
ef7049f9a6
Some cleanup.
2016-05-10 19:40:37 +02:00
chriseth
80c368dac1
Prefer mobileType() to check rational range.
2016-05-10 19:40:35 +02:00
VoR0220
bfc238c8d1
updated algorithm for bit finding...now to figure out literal value
...
tiny fixups
changed location of the check
got rid of extra space and fixed a couple of things
added binary results bits
change back literal value
2016-05-09 11:41:03 -05:00
VoR0220
82039b732e
added bytes conversion tests, resolved that, converted to binary scaling, refactored the find algo to prevent large numbers and take into account integer bytes
...
think we're good on solidity type name resolution now
removed couts
updates to documentation and more removed couts along with literal value implementation
forgot semicolons
2016-05-09 11:41:03 -05:00
VoR0220
f0ea817580
fixing modulus and Solidity Name and Type Resolution
...
minor fixes
current attempts at binary fixup
2016-05-09 11:41:03 -05:00
VoR0220
4b749fc333
changed names for Rational Constants and categories
2016-05-09 11:41:02 -05:00
RJ Catalano
93295ae8f8
got exponents up and working with their inverse, changed a few of the tests....something is working that likely shouldn't be
...
slight changes to how to flip the rational negative around...still trying to figure it out
tests added
updated tests
odd differences in trying soltest from solc binary, let me know if you can replicate
test not working for odd reason
fixed test problem with fixed literals...still need a way to log this error
broken up the tests, added some, changed some things in types and began compiler work
moar tests and prepping for rebuilding much of the types.cpp file
further fixing
infinite loop still happening but it's somewhere in the fixedPoint methodd
fractional bits needed algo improved! Eliminated 2 errors
Corrected problems with the previous commit. No infinite loops. Actually appear to have corrected an error
2016-05-09 11:41:02 -05:00
RJ Catalano
9a075458ad
initial work for fixed types...potentially needing a constant literal type for this
...
notation
Rational implemented...trying to figure out exponential
fix for token bug, also quick fix for the wei and seconds
fixed problem with var...probably a conversion problem for fixed in size capabilities
adding fixed type tests
Removing bitshift and regrouping fixed type tests together
size capabilities functioning properly for fixed types
got exponents up and working with their inverse, changed a few of the tests....something is working that likely shouldn't be
slight changes to how to flip the rational negative around...still trying to figure it out
tests added
updated tests
odd differences in trying soltest from solc binary, let me know if you can replicate
test not working for odd reason
fixed test problem with fixed literals...still need a way to log this error
broken up the tests, added some, changed some things in types and began compiler work
moar tests and prepping for rebuilding much of the types.cpp file
further fixing
initial work for fixed types...potentially needing a constant literal type for this
2016-05-09 11:41:02 -05:00
chriseth
6f54b13d7a
Remove log.h from solidity.
2016-04-12 01:03:46 +02:00
LianaHus
58e07151e3
- inline and assembly keywords added
...
- some style fixes
2016-03-11 17:49:32 +01:00
chriseth
e5514becb8
BREAKING: Implement delegatecall and make default for library calls.
2016-03-11 17:49:32 +01:00