Commit Graph

190 Commits

Author SHA1 Message Date
chriseth
32e210ecca Merge pull request #1146 from LefterisJP/sol_fixBaseClassAccessors
Sol fix accessing public variable of base class
2015-03-02 12:59:12 +01:00
Lefteris Karapetsas
4f13859f8c Using normal pointer in getInheritableMembers() 2015-03-02 12:08:32 +01:00
Lefteris Karapetsas
7db2b6fbdb VisibleInDerivedContracts() is now virtual()
- Plus an extra test for internal visibility in a base class variable
2015-03-02 11:51:13 +01:00
Lefteris Karapetsas
47177542f5 Add structs to inheritable members 2015-03-02 11:51:13 +01:00
Lefteris Karapetsas
5e4665b84d Adding inheritable members to a contract 2015-03-02 11:51:13 +01:00
Christian
2ea8f3a75a Type checks for array assignment. 2015-02-27 22:52:19 +01:00
Christian
754c804d19 Implementation of index access. 2015-02-23 18:25:49 +01:00
Gav Wood
44db8c26db Merge pull request #1100 from chriseth/sol_arrays
Parsing support for arrays.
2015-02-23 15:19:07 +01:00
Christian
e7528c6af8 Stack height checks and fix. 2015-02-22 19:16:40 +01:00
Christian
5e32083179 Parsing of array types and basic implementation. 2015-02-21 15:10:01 +01:00
Liana Husikyan
52050201e3 Inline member initialisation
renamed VariableDefinition class to VariableDeclarationStatement
added tests
2015-02-20 22:50:34 +01:00
Lefteris Karapetsas
de574487e4 getMemberTypes() respects source order 2015-02-17 22:33:44 +01:00
Gav Wood
1e2d4b5c00 Merge pull request #1072 from chriseth/sol_external
bytes ABI type and external visibility specifier
2015-02-17 19:38:35 +01:00
Lefteris Karapetsas
c7e9984574 Initialize FunctionType's m_isConstant attribute in the Event Constructor 2015-02-17 09:24:58 +01:00
Christian
a33fa270f6 Calldata byte arrays stored on the stack. 2015-02-16 19:35:53 +01:00
Christian
3e29ec2cb2 "external" visibility specifier. 2015-02-16 19:24:07 +01:00
Lefteris Karapetsas
68cf1bf37d Small improvement in TypeType::getMembers() 2015-02-13 23:28:19 +01:00
Lefteris Karapetsas
9a879202e1 Explicit conversion from int to Enum 2015-02-13 23:16:15 +01:00
Lefteris Karapetsas
fbd39323af Moving getMemberValue from EnumDefinition to EnumType 2015-02-13 23:16:14 +01:00
Lefteris Karapetsas
b20ce4451b Typo in EnumValue 2015-02-13 23:16:14 +01:00
Lefteris Karapetsas
52808f67fa EnumDeclaration -> EnumValue 2015-02-13 23:16:14 +01:00
Lefteris Karapetsas
b1b6b63d6b Indentation fixes 2015-02-13 23:16:14 +01:00
Lefteris Karapetsas
012e32942d Enum type conversion and member value access.
- Added tests for the type conversion part.

- Enum member value access still needs some work
2015-02-13 23:16:14 +01:00
Lefteris Karapetsas
e7f40863ef Correcting and testing enum member access 2015-02-13 23:16:14 +01:00
Lefteris Karapetsas
a989f6f97a Enums NameAndTypeResolution - WIP
- Also adding an EndToEnd enum test
2015-02-13 23:16:14 +01:00
Lefteris Karapetsas
c3a9ae0b06 Introducing EnumType and some Parser tests 2015-02-13 23:16:14 +01:00
Christian
1c3c1f1e5d Copying structs. 2015-02-12 20:19:49 +01:00
Christian
b836d952b2 length member for byte arrays. 2015-02-12 15:44:35 +01:00
Christian
5e40b79426 Bytes type cleanup. 2015-02-12 15:01:38 +01:00
Christian
adb434569c Dynamic copy to memory. 2015-02-12 11:33:10 +01:00
Christian
79aec95228 Simple copy of bytes to storage. 2015-02-12 11:33:09 +01:00
Christian
20b4c69009 Tests and some code for msg.data. 2015-02-12 11:33:09 +01:00
Christian
1369337808 Introduced byte array type. 2015-02-12 11:33:09 +01:00
Lu Guanqun
11b4e7f7d8 small fixes per chris's comments 2015-02-10 23:39:13 +08:00
Lu Guanqun
d307b0914c add exponent operator
https://www.pivotaltracker.com/n/projects/1189488/stories/83746404
2015-02-10 23:39:13 +08:00
Christian
cf4144b702 Arbitrary parameters for call() and all hash functions. 2015-02-10 10:59:23 +01:00
chriseth
bb6f181d7d Merge pull request #986 from LefterisJP/sol_StyleFix
Solidity enum style fix
2015-02-10 10:54:28 +01:00
Lefteris Karapetsas
3ef75bae6b Camelcasing enums in Types.h 2015-02-09 14:08:48 +01:00
Lefteris Karapetsas
6f621f8486 Changing Solidity Code to use CamelCase enum values 2015-02-09 14:00:12 +01:00
Christian
106cda74f8 Small cleanup. 2015-02-09 00:49:35 +01:00
chriseth
a66db516fb Merge pull request #937 from LefterisJP/sol_MultiArgSHA3
Solidity multiple arg sha3
2015-02-09 00:14:13 +01:00
Lefteris Karapetsas
afe1d9a592 Small fixes in Types and ExpressionCompiler 2015-02-06 20:57:04 +01:00
Christian
724ee76900 Accessors for structs. 2015-02-06 20:04:02 +01:00
Lefteris Karapetsas
2c9ff4747d getRealType() introduced 2015-02-06 13:42:51 +01:00
Christian
82edc1ca6d Some fixes for the ether units parser. 2015-02-06 13:38:29 +01:00
Lefteris Karapetsas
c966ff246f More style changes in enums 2015-02-05 23:03:24 +01:00
Lefteris Karapetsas
305f54b23f Minor Style fixes 2015-02-05 22:38:07 +01:00
Lefteris Karapetsas
eaadc71b4c Tests and fixes for ether subdenominations 2015-02-05 15:41:13 +01:00
Lefteris Karapetsas
dca5f7b57b Adding ether subdenominations after constan literals 2015-02-04 17:52:28 +01:00
Gav Wood
7050893bc1 Minor typo. 2015-02-03 08:48:11 -08:00
Lefteris Karapetsas
8cd3d4b4b7 Accessors for multiple mappings implemented 2015-02-02 17:52:50 +01:00
Lefteris Karapetsas
ec7a9bf919 Adding mapping treatment to FunctionType
Plus a TypeResolution test for it
2015-02-01 00:20:35 +01:00
Gav Wood
8e84dc27a7 Merge branch 'develop' of github.com:ethereum/cpp-ethereum into develop
Conflicts:
	test/SolidityEndToEndTest.cpp
	test/SolidityNameAndTypeResolution.cpp
	test/SolidityParser.cpp
2015-01-29 16:05:17 -08:00
Christian
cfb55901cc Fallback functions. 2015-01-29 22:50:20 +01:00
Christian
4a6ed84386 Parsing of events. 2015-01-29 21:26:11 +01:00
Lefteris Karapetsas
3701543ae8 FunctionType now returns const ref for Declaration 2015-01-29 19:18:50 +01:00
Lefteris Karapetsas
04190798eb Minor fixes plus a rebase merge fix 2015-01-29 18:21:51 +01:00
Lefteris Karapetsas
005100c486 Contract Interface Functions now return FunctionType
- Enchanced Function Type by declaration so that it can provide all the
  required information at each place interface functions are consumed

- Changed all places where interface functions was used.

- Simplified Mix's FunctionDefinition code
2015-01-29 17:11:13 +01:00
Christian
ae5a6a235c Super keyword. 2015-01-29 00:29:43 +01:00
Lefteris Karapetsas
c6fcb8555f Simplify FunctionType's Vardecl constructor 2015-01-28 21:46:16 +01:00
Lefteris Karapetsas
3f5eb96584 Various small fixes for Sol Automatic Accessors 2015-01-28 21:46:16 +01:00
Lefteris Karapetsas
5c7359aa09 State variable accessors code is now more organized
- FunctionDescription is the abstraction of what should describe a
  function. It can either be a VariableDeclaration of a
  FunctionDefinition.

- ParamDescription is what FunctionDescription uses to describe its
  parameters for outside use purposes with a pair of (name, type)
  strings

- Modified code around Solidity and especially interface handler to
  adapt to this change
2015-01-28 21:46:16 +01:00
Lefteris Karapetsas
3cc0492301 Work in progress for state variable accessors
- Changed the code so that a generic declaration with the combination of
  a function type can be used wherer a function definition was used
  before

- Since using an std::pair everywhere is really tiring with this commit
  I am in the process of abstracting it into a function
2015-01-28 21:46:16 +01:00
chriseth
18fc2ed2d6 Merge pull request #857 from LianaHus/StringToHash
conversion for string to/from hash
2015-01-27 13:53:13 +01:00
Christian
941c77c8fa Type resolution for function modifiers. 2015-01-26 10:23:39 +01:00
liana
5de93e6acb - added conversion for string/hash of equal sizes
- added tests
2015-01-23 17:45:37 +01:00
Christian
d854e56789 Include virtual function overrides in constructor context. 2015-01-20 15:58:04 +01:00
Christian
417f9c03d0 Implicit conversion from derived to base. 2015-01-19 23:35:04 +01:00
Christian
6e111d5d1d Explicit calls to base class function. 2015-01-19 23:35:04 +01:00
chriseth
325b052b16 Merge pull request #805 from LianaHus/deleteStruct
delete for structs

-added functionality to set values to 0 when deleting structure(not for ...
2015-01-19 11:32:11 +01:00
Gav Wood
a9ed77c22a Merge branch 'develop' of github.com:ethereum/cpp-ethereum into develop
Conflicts:
	libsolidity/Types.h
2015-01-15 14:03:35 -05:00
Gav Wood
911916beb7 Add blockhash to Solidity.
Autopadding fix.
2015-01-15 13:59:35 -05:00
liana
00b0b0933d - added functionality to set values to 0 when deleting structure(not for mapping)
- added unit test

Made some changes after Christian`s review on pull request
- remove/edit comments
- BoolType and ContractType return VoidType after delete

- fixed constructor_arguments test

- fixed set to 0 when deleting variable from stack
- changed test case to test that
2015-01-15 11:59:58 +01:00
Christian
d1e05ac416 Remove redundancy in FunctionType::getSizeOnStack. 2015-01-14 11:01:42 +01:00
Christian
b440d7e321 Specify value for contract creation. 2015-01-13 18:12:30 +01:00
Christian
ec022783c4 Modify gas and value for external function call. 2015-01-13 18:12:30 +01:00
Christian
a5d32e4894 Define strings = vector<string> 2015-01-12 13:29:16 +01:00
Christian
307a83e1de More convenient function type construction. 2015-01-12 12:46:52 +01:00
Christian
c5c8933192 Contracts are Addresses. 2015-01-09 18:31:36 +01:00
Christian
a60d82d12c Remove const from make_shared to allow enable_shared_from_this to work on MacOS. 2015-01-09 15:16:09 +01:00
Christian
be623273f3 Arbitrary precision integer constants. 2015-01-09 15:16:09 +01:00
Christian
be1e89da42 Possibility for unary operators to change type. 2015-01-09 15:09:10 +01:00
Christian
dcda38cf38 Use shared_from_this instead of manually supplying a shared_ptr to this. 2015-01-09 15:09:10 +01:00
Lefteris Karapetsas
9cf1c066fc Adjustments to Solidity compiler code for Function Hash 2015-01-09 00:27:26 +01:00
Lefteris Karapetsas
a7b661d3be merging develop 2015-01-08 17:43:38 +01:00
Lefteris Karapetsas
184ddca5a1 Compiler EVM generation now takes into account for the new function hash
identifier

- Changed tests to comply with the new function hash identifier
- Changed the function index offset to 4, and made it a constant for
  easy adjustment in the future
2015-01-08 17:18:31 +01:00
Lefteris Karapetsas
c55608f94b Solidity getInterfaceFunctions is now a map of hash to Function
- Also introduced dependency between libsolidity and libdevcrypto

- Compler's appendFunctionSelector now has a first version of using
  function signature hash instead of index
2015-01-07 16:39:21 +01:00
Gav Wood
53e38b3ac9 Merge pull request #738 from LefterisJP/sol_abiFunctionHash
Canonical Function signature creation in solidity
2015-01-07 16:32:13 +01:00
Lefteris Karapetsas
df0dce584d Small issues with Canonical Function Signature
- Also added an extra test
2015-01-07 10:45:59 +01:00
Lefteris Karapetsas
24d7bdd3a9 FunctionType also gets CanonicalSignature
- also using iterators in the signature creation function
2015-01-07 02:27:05 +01:00
Christian
8442974617 Clarified binary operator checking for integer types. 2014-12-28 13:35:58 +01:00
Christian
7dc7827907 Possibility for binary operators to yield types different from their operands'. 2014-12-19 00:12:04 +01:00
Christian
5a1a83ff42 Assertions that throw InternalCompilerErrors. 2014-12-17 16:24:56 +01:00
Christian
5b802b685e Stylistic changes. 2014-12-16 16:15:34 +01:00
Christian
2f64c56ef3 Create contracts. 2014-12-15 13:05:18 +01:00
Christian
739192ae65 Correctly check for string prefix plus indentation change. 2014-12-15 01:02:33 +01:00
Christian
c0bba438b1 Calls to bare contracts. 2014-12-12 17:26:19 +01:00
Christian
a735228079 Support empty strings. 2014-12-11 14:19:11 +01:00
Christian
8b54d1afb2 Merge remote-tracking branch 'ethereum/develop' into sol_strings
Conflicts:
	libsolidity/Types.cpp
2014-12-10 17:24:23 +01:00
chriseth
3c377f77bb Merge pull request #577 from chriseth/sol_constCleanup
Solidity const cleanup
2014-12-10 17:19:01 +01:00