-
Notifications
You must be signed in to change notification settings - Fork 20.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
solidity compiler and contract metadocs integration #833
Conversation
zelig
commented
Apr 29, 2015
- common/compiler: solidity compiler + tests
- rpc: eth_compilers, eth_compileSolidity + tests
- fix natspec test using keystore API, notice exp dynamically changes addr, cleanup
- resolver implements registrars and needs to create reg contract (temp)
- xeth: solidity compiler. expose getter Solc() and paths setter SetSolc(solcPath)
- ethereumApi: implement compiler related RPC calls using XEth - json struct tests
- admin: make use of XEth.SetSolc to allow runtime setting of compiler paths
- cli: command line flags solc to set custom solc bin path
- js admin api with new features debug and contractInfo modules
- wiki is the doc https://github.com/ethereum/go-ethereum/wiki/Contracts-and-Transactions
|
471c149
to
65ca17f
Compare
travis broken on unrelated issiue |
Restarting travis. If issue persist this is done in your PR. This doesn't fail anywhere else. |
why is travis so fragile suddenly?
|
|
||
func (js *jsre) waitForBlocks(call otto.FunctionCall) otto.Value { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is this for?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
waits until block height is minimum the number given (guarded by timeout)
basically a sleep function on variable block units of time using a subscription to the chains head.
- can be used like (wait for x confirmations), without filters.
- between a mining start/stop session, it can be used to advance the blockchain in a piecemeal fashion on demand. good for debugging transaction inclusions on a private network while not waste resources, see this script:
https://gist.github.com/zelig/21ac8eada617e56866d8 - could be used in contract integration tests
[need to fix js argument handling]
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why has this been implemented? I can't find any call to it. I don't like methods for the sake of having them. If it isn't being used, please get rid of it.
EDIT: blocking main JS thread is imo a pretty bad idea. Success callback maybe?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This implements the admin.debug.waitForBlocks
method so it is not called in go but on the console or in a js file (see link above).
The mining example i show in the script was not possible since starting mining with the old big dag is not realistic in tests. This hack should be eliminated, once there is new ethash with minidag for tests. Then the xeth.ApplyTestTxs (used natspec and cmd/geth tests) should be replaced with a xeth.mineBlocks(n int)
As for the callback, I agree blocking the mainthread is incorrect IF we have real asynchrony, but until async send and watch are implemented we cannot have this as the single method offering async callback.
On the other hand, if async is properly implemented we can eliminate this method in favour of a filter:
eth.filter("latest", function(err, res) {
if(num == 2)
stopmining();
num++;
})
updated as we discussed. can be merged but |
* common/compiler: solidity compiler + tests * rpc: eth_compilers, eth_compileSolidity + tests * fix natspec test using keystore API, notice exp dynamically changes addr, cleanup * resolver implements registrars and needs to create reg contract (temp) * xeth: solidity compiler. expose getter Solc() and paths setter SetSolc(solcPath) * ethereumApi: implement compiler related RPC calls using XEth - json struct tests * admin: make use of XEth.SetSolc to allow runtime setting of compiler paths * cli: command line flags solc to set custom solc bin path * js admin api with new features debug and contractInfo modules * wiki is the doc https://github.com/ethereum/go-ethereum/wiki/Contracts-and-Transactions
solidity compiler and contract metadocs integration